Commit graph

12 commits

Author SHA1 Message Date
Zachery Aaron Shores-Chmielewski
3c5e3d2ece feat: hybrid channels
Add a mutex-locked Dequeue to prevent panics and failures on overflow.
2026-01-26 14:00:25 +07:00
Zachery Aaron Shores-Chmielewski
58d3c19ff9 feat: benchmarks
Got a ton of benchmarking and stress testing code spit out by the
LLM. Did a not-so-thorough vetting, not ready for merge into master,
but it mostly makes sense. Needs to actually fail on the stress
tests, not anticipate failure and call it success. The benchmarks
also need a more thorough going over, in order to validate that they
make sense. Then we can work on improving our metrics.
2026-01-26 11:14:54 +07:00
Zachery Aaron Shores-Chmielewski
d14f99c6af feat: conditionally compile without a source of randomness 2026-01-26 09:11:35 +07:00
Zachery Aaron Shores-Chmielewski
98a2733173 feat: multithreaded runtime
Runtime is now configurable. Adds a tunable config for modifying the
size of pre-allocations for actor messaging channels, and for selecting
the number of threads the runtime will use.
2026-01-25 20:31:34 +07:00
Zachery Aaron Shores-Chmielewski
c62b20c732 feat(WIP): refactor router execution
In single threaded contexts, the Router now is treated as yet another actor
on the queue. In multithreaded contexts, it gets its own dedicated thread.
2026-01-25 12:54:01 +07:00
Zachery Aaron Shores-Chmielewski
2f91c7d1bd feat(WIP): runtime/router refactor
Simplify the implementation of the multithreaded runtime and router.
2026-01-25 11:45:34 +07:00
Zachery Aaron Shores-Chmielewski
d504377ba9 feat(WIP): multithreaded runtime
Basic framework for a multithreaded runtime has been put in place. Needs
plenty of fixes to keep the logic straightforward and performant.
2026-01-25 10:39:44 +07:00
Zachery Aaron Shores-Chmielewski
2450442566 feat: refactor: split out components into modules 2026-01-23 14:09:31 +07:00
Zachery Aaron Shores-Chmielewski
a9f7abba25 feat: mvp actor ring test 2026-01-23 13:48:26 +07: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