Thread overview
Demo: Calling Typescript library from D via WebAssembly
Sep 26, 2019
Sebastiaan Koppe
Sep 27, 2019
Dennis
Sep 27, 2019
Sebastiaan Koppe
Sep 27, 2019
a11e99z
September 26, 2019
I would like to announce an example showcasing D interacting with a Typescript library via WebAssembly.

https://github.com/skoppe/spasm-tradingview-example

I have started work on a small project that generates these bindings automatically, leveraging the typescript compiler. This could also be used to interact with javascript libraries which have typescript bindings.




September 27, 2019
On Thursday, 26 September 2019 at 09:25:28 UTC, Sebastiaan Koppe wrote:
> I would like to announce an example showcasing D interacting with a Typescript library via WebAssembly.

I love how much work you put into WebAssembly support for D. Keep up the good work!

> I have started work on a small project that generates these bindings automatically, leveraging the typescript compiler.

I can imagine some basic types are easy (such as number -> double), but I wonder how you bind to functions that take sum types or 'any'. Are you going to use opaque JS objects on the D side or convert D structs/classes upon calling TS/JS functions?
September 27, 2019
On Friday, 27 September 2019 at 10:07:08 UTC, Dennis wrote:
> On Thursday, 26 September 2019 at 09:25:28 UTC, Sebastiaan Koppe wrote:
>> I would like to announce an example showcasing D interacting with a Typescript library via WebAssembly.
>
> I love how much work you put into WebAssembly support for D. Keep up the good work!

Thanks, I hope to be able to spend more time on it in the future. There are still a lot of things that need to be improved.

>> I have started work on a small project that generates these bindings automatically, leveraging the typescript compiler.
>
> I can imagine some basic types are easy (such as number -> double), but I wonder how you bind to functions that take sum types or 'any'. Are you going to use opaque JS objects on the D side or convert D structs/classes upon calling TS/JS functions?

I am using opaque JS objects. Spasm already has Sumtypes and supports Any as well, so it is going to move forward from that.

Having said that, the lineSeries data in the tradingview example is implemented with a proxy object that directly accessed memory from the wasm module. There are pros and cons to either approach.

Also, I have to take into account the upcoming interface-types proposal https://github.com/WebAssembly/interface-types/blob/master/proposals/interface-types/Explainer.md
September 27, 2019
On Thursday, 26 September 2019 at 09:25:28 UTC, Sebastiaan Koppe wrote:
> I would like to announce an example showcasing D interacting with a Typescript library via WebAssembly.
>
> https://github.com/skoppe/spasm-tradingview-example
>
> I have started work on a small project that generates these bindings automatically, leveraging the typescript compiler. This could also be used to interact with javascript libraries which have typescript bindings.

OT: https://run.dlang.io/is/6M2WII