www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Demo: Calling Typescript library from D via WebAssembly

reply Sebastiaan Koppe <mail skoppe.eu> writes:
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.
Sep 26 2019
next sibling parent reply Dennis <dkorpel gmail.com> writes:
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?
Sep 27 2019
parent Sebastiaan Koppe <mail skoppe.eu> writes:
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
Sep 27 2019
prev sibling parent a11e99z <black80 bk.ru> writes:
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
Sep 27 2019