rocketrpc
threadbox
rocketrpc | threadbox | |
---|---|---|
3 | 8 | |
154 | 228 | |
- | - | |
4.3 | 0.0 | |
4 months ago | almost 2 years ago | |
TypeScript | TypeScript | |
- | GNU General Public License v3.0 or later |
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.
rocketrpc
-
A library for going general PRC between threads and processes using high-level classes
The project is split into several packages, to allow for plugin new transforms. The main package is the packages/rpc package. On the “client side” the library works by using a Proxy, where it can intercept the Getter on an object, and then provides a wrapped function instead. It then waits for the arguments to be passed in, and passes them on to the underlying transport. At this point the message is passed through the transport, which then invokes the handleInvocation function. This function then accesses the underlying class and calls the actual function. Then it uses Promise.resolve to allow handling of both promises and non-promise responses. The result is then sent back to the client where it gets unwrapped and then resolves the client-side promise. Through this model any system which has a way of sending events with data can be used. Here I needed a WebWorker, so that is what I originally implemented, but there should be no problem with wrapping a WebSocket like https://github.com/akash-joshi/functions-without-borders is doing.
-
Functions without Boundaries - A typesafe library for making transparent RPC calls over websockets
Check the source code here: https://github.com/akash-joshi/functions-without-borders
- Functions without Borders - A typesafe RPC library thinning the boundaries between client and server
threadbox
-
threadbox VS multithreading - a user suggested alternative
2 projects | 10 Jan 2024
-
Why C# goes well with TypeScript
Also, I find the JavaScript single threaded / async execution model far more attune to real work. In C# you would require a synchronization context to yield async work back to the host thread to run sync, but JavaScript makes this a default (i.e. event loop). Also the Web Worker, Shared Array Buffer and Atomics provide a far more approachable threading model, so if no memory is shared, then there's no need to lock, but if you do need to lock, it's opt in and apparent. It's also why I wrote this
-
[AskJS] How has your experience with Deno been so far?
I have been planning on writing a Deno version of https://github.com/sinclairzx81/threadbox once Deno worker thread and Shared Array Buffer gets better. It may be possible to implement CAS in user lib space.
-
A library for going general PRC between threads and processes using high-level classes
I feel your pain with respect to working with worker_thread in Node. Not to lib drop, but this library might something you may be interested in https://github.com/sinclairzx81/threadbox
-
Multi Threading in Node using Process Recursion
Non-Decorator JavaScript version https://github.com/sinclairzx81/threadbox/blob/master/doc/example.js
-
Favorite threading/worker libraries?
Actually, keen to get your thoughts on https://github.com/sinclairzx81/threadbox. worker_threads often get overlooked in the node sphere. Interested to hear what others who have looked at this feature think of this lib.
What are some alternatives?
prray - "Promisified" Array, it compatible with the original Array but comes with async versions of native Array methods
threads.js - 🧵 Make web workers & worker threads as simple as a function call.
livegollection-client - livegollection-client is the JavaScript/TypeScript client-side library to interact with the correspondant server-side Golang library livegollection.
webgpu-examples
ruls - 📏 Typesafe rules engine with JSON encoding.
worker-rpc
multithreading - ⚡ Multithreading functions in JavaScript to speedup heavy workloads, designed to feel like writing vanilla functions.
wari - A type-safe way to create and handle errors.
typebox - Json Schema Type Builder with Static Type Resolution for TypeScript
wretch - A tiny wrapper built around fetch with an intuitive syntax. :candy:
discordeno - Discord API library for Node and Deno