Commit graph

12 commits

Author SHA1 Message Date
Zachery Aaron Shores-Chmielewski
f3b44b5d69 feat: basic wasm
Unfeatured wasm module. Mostly to test that wasm builds
2026-02-06 23:45:58 +07:00
1234838361 feat: code DAG visualizer (#11)
Visualize the inter-module code dependency DAG
2026-02-06 14:54:56 +00:00
Zachery Aaron Shores-Chmielewski
d3fdf9e550 feat: worker thread api (#6)
Make the worker thread api clearly seperated and ready for test harness
2026-02-06 21:45:19 +07:00
29bb51004f feat: jupyter example (#10) 2026-02-06 14:04:48 +00:00
796bd1f2c5 feat: runtime information display (#9)
Show basic information from the runtime, such as number of actors, worker threads, etc.
2026-02-06 13:35:46 +00:00
85c7c557ee feat: python bindings (#7)
Python bindings allowing us to interact with the library in a python REPL
2026-02-06 12:47:51 +00:00
5a9af73de6 refactor: major library changes (#5)
Refactoring to logically separate component modules in order to make it easier to develop tests, metrics, tracing, etc.
2026-02-06 11:25:37 +00:00
Zachery Aaron Shores-Chmielewski
c56a05433f feat: Stress tests, benchmarking, and non-failing queues and inboxes #3
Adds some basic benchmarking, stress tests. They still need to be properly examined to ensure they are testing the correct properties, but fit for "good enough". Implements the HybridChannel type, which features a channel buffer that can withstand overflows. It does so by providing a dequeue behind a mutex. Without overflow, will push messages into the lock free ArrayQueue implemented by crossbeam_queue; when that buffer fills, will use the locking portion provided by the Mutex<VecDequeue>.

In the future we can even further optimize this, perhaps with some linked list implementations of lock-free channels, but, like the benchmarks, this fits the "good enough" bar for now.
2026-01-26 14:14:00 +07:00
b422605f6b feat: Multithreaded runtime (#2)
Implements a tunable configuration for a single or multi-threaded runtime.

Co-authored-by: Zachery Aaron Shores-Chmielewski <zachanon@gmail.com>
Reviewed-on: http://zachery.lol/code/code/zacheryasc/swactor/pulls/2
2026-01-25 13:38:34 +00:00
55077dbf57 feat: rewrite (#1)
Did not like the requirement of a tokio runtime and async/await. Rewrote
to use lock free queues (`crossbeam_queue::ArrayQueue`) as the basic
primitive to enable a runtime consisting of many pseudo-processes that
can pass messages to each other.

Co-authored-by: Zachery Aaron Shores-Chmielewski <zachanon@gmail.com>
Reviewed-on: http://zachery.lol/code/code/zacheryasc/swactor/pulls/1
2026-01-23 05:00:57 +00:00
Zachery Aaron Shores-Chmielewski
b8b5b839df feat: types for request/response handling 2025-11-25 20:51:13 -05:00
Zachery Aaron Shores-Chmielewski
120ba0ec71 init
Skeletal actor framework. Somewhat unweildy, needs a message box, a better runtime, and different channels. However, hello world example works
2025-11-24 19:39:17 -05:00