Comments (6)
The major reasons why I implemented all of this are:
- we have special requirements where we can implement the host API in VS Code. It has to happen in the extension host worker and therefore we need to bridge from WASM worker into another worker. The generated meta model allows us to do so without writing any code by hand.
- we have the idea of 'witifying' some of the VS Code API so that extensions can be implemented in languages that compile to WASM. Having idiomatic TS interfaces helps with this since the whole VS Code API is defined in TS.
from jco.
@dbaeumer if you are available, I also strongly recommend attending https://bytecodealliance.org/articles/announcing-componentize-the-world where @guybedford will be leading the workgroup around the JS ecosystem.
from jco.
As Bailey said, it'd be fantastic if you could join us for that event! What you're describing sounds extremely cool, and exactly like one of the things we mean when talking about componentizing the world 😊
from jco.
@ricochet @tschneidereit I already signed up for the workshop. Looking forward to seeing you there.
from jco.
Hey @dbaeumer, I finally had a read through the links you posted here and this is very exciting work, thanks for posting here! I was working last week on some demo material for my talk and ended up using a similar console style demo to show some of the possibilities. You likely won't believe me at this point that it was before I read through all your links! It's a great use case. The TypeScript generation you have is looking fantastic as well. One issue we have is we have some subtle differences between lifting and lowering types for JavaScript due to slight differences in the coercions, which seemed worth capturing (ie inputs from JS are more flexibly typed than outputs). It would be great to swap notes on the TS generation, and of course your use cases focus some great considerations for the work that would be great to discuss. Look forward to meeting then.
from jco.
There were some really great conversations here all around, nice to see the various follow-ups!
from jco.
Related Issues (20)
- How do I use `js-component-bindgen`? HOT 1
- Incorrect codegen for `wasi:http` resource `RequestOptions` HOT 2
- JCO serve error on composed component HOT 1
- Are TypeScript definitions generated by transpile supposed to include comments from the WIT file? HOT 2
- Validity of file descriptors in the context of the `SyncKit` worker HOT 3
- Unsupported URL wasi when running in Node.js HOT 2
- Transpile bindings for `u32` map to `number` in *.d.ts HOT 3
- Non-conformant exceptions should unwrap as traps HOT 2
- Jco transpile: implementation of wasi-nn for Web HOT 2
- Source phase imports output
- Performance
- JS/WIT Reference
- Lifting `list<borrow<res>>` during transpilation emits invalid code HOT 3
- Resource transferring seems not working with wasi-virt HOT 1
- Crash on startup with an out-of-memory error when environment variables are large HOT 3
- Provide wasm-tools APIs in the browser HOT 2
- `definedResourceTables` codegen generates invalid JS with `--instantiation async` HOT 1
- plain enums are generating complex typescript HOT 8
- Question: `jco types` generating namespaces instead of modules? HOT 1
- Better instantiation workflows
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jco.