kernel 0.11.0

Abstract Reactive Streams
docs.rs failed to build kernel-0.11.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: kernel-1.1.0

Enso Operating System

Build Status Gitter Chat Crates IO

Sample

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::<std::net::SocketAddr>().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);
}

Features

  • MIO Compatible Network Server with Connections
  • Future and Stream rich combinators
  • Session Types and π-calculus semantics
  • MPSC, SPMC, SPSC queues
  • 10-40ns latency
  • Free from Dependencies

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

  • Viktor Sovietov
  • Anton Kundenko
  • Ievgenii Lysiuchenko
  • Mykola Oleksiienko
  • Maxim Sokhatsky