The Kernel
TL;DR Autobalancing low-latency non-blocking zero-copy CAS-multicursor queues with priority tasks and scalable timers.
Features
- MIO Compatible Network Server with Connections
- Vectorizable SMP-aware stream combinators
- MPSC, SPMC, SPSC queues with CAS-semantics on Ring Buffers
- Session Types and π-calculus semantics
- 10-40ns latency
- Zero-Copy Interpreter
Prerequisites
$ sudo apt-get install libhwloc-dev
Test The O Language
$ cargo build ; rlwrap ./target/debug/console
Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
Welcome to O-CPS Interpreter v0.11.0!
> fac:{$[x=1;1;x*fac[x-1]]};fac[20]
2432902008176640000
>
Sample
extern crate kernel;
use *;
use *;
use *;
use *;
Test Network Server
$ cargo build
$ cargo test
$ ./target/debug/server
IO Server started
Console is listening...
Server run loop starting...
In another process:
$ ./target/debug/client
Test Console Server
$ rlwrap ./target/debug/console
Console is listening...
ENSO
Message: "ENSO"
Test Session Types
$ ./target/debug/fix
Reading
- Kohei Honda Session Types and π-calculus http://mrg.doc.ic.ac.uk/kohei/
- Rust version http://munksgaard.me/laumann-munksgaard-larsen.pdf
- Haskell Version http://users.eecs.northwestern.edu/~jesse/pubs/haskell-session-types/session08.pdf
Credits
- Viktor Sovietov, Core Suggestions
- Anton Kundenko, Stream Processing
- Ievgenii Lysiuchenko, Optimizations
- Mykola Oleksiienko, K expertise
- Maxim Sokhatsky, General View
- Ken Pratt, Rusty Scheme
- Carl Lerche, MIO