The Kernel

TL;DR Autobalancing low-latency non-blocking zero-copy CAS-multicursor queues with priority tasks and scalable timers.

Build Status Gitter Chat Crates IO Crates IO

Features

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

```rust extern crate kernel;

use kernel::io::poll::; use kernel::io::tcp::; use kernel::io::server::; use kernel::io::console::;

fn main() { let x = std::thread::spawn(|| net()); let y = std::thread::spawn(|| console()); x.join(); }

fn net() { let addr = "127.0.0.1:8000".parse::().ok().expect("Parser Error"); let sock = TcpListener::bind(&addr).ok().expect("Failed to bind address"); let mut poll = Poll::new().expect("Failed to create Poll"); let mut net = Server::new(sock); net.run(&mut poll).expect("Failed to run server"); }

fn console() { let mut poll = Poll::new().expect("Failed to create Poll"); let mut con = Console::new(); con.run(&mut poll); } ```

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

Credits