scale
node-sdk
scale | node-sdk | |
---|---|---|
5 | 3 | |
464 | 6 | |
3.0% | - | |
8.5 | 10.0 | |
5 days ago | 3 months ago | |
C | TypeScript | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scale
-
WASM by Example
This is exactly one of the use-cases for the Scale Framework[1]. (Disclaimer: I work on this project)
You can absolutely take a library from one language and run it in another. In a sense, you could kind of see this ability as drastically reducing the need for rewriting sdks, middlewares, etc. across languages, as you could just reuse code from one language across many others. We played around with some fun ideas here, like taking a Rust regex library and using it in a Golang program via a scale function plugin (compiled to Wasm), to the effect of the performance being ~4x faster than native code that uses Go's regex library.
[1] https://github.com/loopholelabs/scale
- Show HN: Scale – Serverless functions, in any language, powered by WASM
- Show HN: Write Language-agnostic functions with WebAssembly you can use
-
Announcing Scale: A WebAssembly runtime for running Go functions in any other language
We're currently working on a couple of different projects, but everything we've launched so far (fRPC and Scale) is FOSS.
node-sdk
-
WASM by Example
We sort of do this with WASM for just in time pipelines. We write pipeline rules in WASM...for things like detecting/masking fields...then we import and execute those wasm rules in a variety of language SDKs. As a sibling comment indicates, it's pretty difficult getting data in and out, but it's doable. See here for an example: https://github.com/streamdal/node-sdk/blob/main/src/internal.... We do this sort of thing in node, go & python and are adding other languages.
-
Show HN: Streamdal – an open-source tail -f for your data
In the node-sdk, process pipeline is async , see: https://github.com/streamdal/node-sdk/blob/main/src/streamda... (I'm the author of that). I believe this is also the case for the python and go sdks as well. So you can call it asynchronously for passive observability.
However, we implemented the pipeline rules in wasm with the goal of keeping the overhead as minimal as possible. So you could also use it as more of a data security or governance tool and invoke the pipelines synchronously and mask or prevent sensitive data before passing it along.
What are some alternatives?
excelize-wasm - A WebAssembly build of the Go Excelize library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets
streamdal - Code-Native Data Pipelines
olin - Webassembly + Event Sourcing
plumber - A swiss army knife CLI tool for interacting with Kafka, RabbitMQ and other messaging systems.
plugin-XDCC - 📁 XDCC for webircgateway
componentize-py
cup - Git Contribution Automation
dotnet-pdk - Extism Plug-in Development Kit (PDK) for C# and F#
lagon - Deploy Serverless Functions at the Edge. Current status: Alpha
dcraw - Mirror of Dave Coffin's dcraw, with full history
yatas-template - Template for creating a plugin for YATAS
cxx-wasm-freestanding - example of a c++ -> wasm build that doesn't use emscripten or any standard library