• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
    Rust
  • Created over 4 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Proactive IO & Runtime system

Nuclei: Proactive IO & Runtime system

Nuclei is a proactor-based IO system which is runtime agnostic and can work with any runtime. The proactor system's design principles are matching Boost Asio. Nuclei is not using a conventional reactor approach. It is completely asynchronous, and it's wrapping poll based IO in a proactive fashion.

Nuclei uses epoll on Linux as the primary evented IO backend, secondarily (given system support) you can use io_uring. On MacOS, Nuclei is using kqueue. On Windows, the IOCP backend will be used.

The current io_uring implementation needs a modern Linux kernel (5.6+).

Features

  • Async TCP, UDP, Unix domain sockets and files...
  • The proactor system doesn't block
  • Scatter/Gather operations
  • Minimal allocation
  • More expressive than any other runtime
  • Completely asynchronous I/O system with lock free programming

Examples

Please head to examples directory to run the examples:

$ cd examples
$ cargo run --example fread-vect

Tests

$ cargo test --no-default-features --features=iouring # For iouring
$ cargo test # For others

Configurations

Evented IO backend

When the iouring feature gate is not enabled, the platforms evented backend is used. For example, on Linux, epoll would be used.

Executor

Executor is using async-global-executor. Available features are:

  • async-exec: Uses async-io feature of async-global-executor.
  • tokio
  • tokio02
  • tokio03

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Credits

Gif is from the documentary called "Particle Fever".

More Repositories

1

tokamak

Fusion Reactor for Rust - Atom Rust IDE
HTML
399
star
2

orkhon

Orkhon: ML Inference Framework and Server Runtime
Rust
146
star
3

lever

Pillars for Transactional Systems and Data Grids
Rust
130
star
4

callysto

Stream processing & Service framework.
Rust
112
star
5

kaos

Chaotic Testing Harness
Rust
58
star
6

korq

Kubernetes Dynamic Log Tailing Utility
Rust
42
star
7

cuneiform

Cache & In-Memory optimizations for Rust, revived from the slabs of Sumer.
Rust
30
star
8

proq

Idiomatic Async Prometheus Query (PromQL) Client for Rust.
Rust
20
star
9

rust-dersleri

๐Ÿฆ€Rust Turkiye - Rust Dersleri
Rust
14
star
10

degauss

Avro schema compatibility checker
Rust
14
star
11

tokamak-terminal

Tokamak Terminal
CoffeeScript
11
star
12

smbclient-sys

SMB client(SAMBA impl) FFI bindings [libsmbclient] for Rust
Rust
11
star
13

ringbahn

High performance multiple backend web server
Elixir
7
star
14

cuneiform-fields

Field level cache optimizations for Rust (no_std)
Rust
7
star
15

luaenv

Custom Lua Execution Environments for use with Koneki LDT
Lua
6
star
16

openvas_tasks

Information and history receptor for OpenVAS tasks.
Python
6
star
17

qube

Kubernetes API client with async features (based on kubeclient)
Rust
6
star
18

tracing-json

Tracing Structured Json Logging Adapter
Rust
5
star
19

trafo

Rust rewrite of the util-linux
Rust
4
star
20

kanagawa

Web framework based on Tide with Proactive IO
Rust
4
star
21

olayufku

Schema Registry for BigQuery
JavaScript
2
star
22

relay

Hot-updatable reverse proxy
Rust
2
star
23

airvantage-api-nodejs

Airvantage API Node.JS example
CSS
2
star
24

zor

Properly run Rust benchmarks
Shell
2
star
25

docker-volume-redis

Redis based volume plugin for Docker
Go
2
star
26

travertine

SNMP browser for all platforms (SNMPB fork)
C
2
star
27

leo

Leo - Heuristic Variant Analysis Tool written in Rust
1
star
28

RubMat

discrete math repl
Ruby
1
star
29

cekic

Experimental system model generator for RTS
Java
1
star
30

avu

Kaminsky DNS cache poisoning tool
C++
1
star
31

dark_model

Time travel MDP for Dark Netflix Series (includes protagonists' Season 2 jumps)
1
star
32

volvox

All-in-One developer modes for Emacs
Emacs Lisp
1
star
33

radiant-turkish_language_pack-extension

Radiant CMS Turkish Language Pack Extension
Ruby
1
star
34

x86instexporter

Intel x86/x86_64 instruction set exporter (to ease the pain of rust-lang/stdarch contributions)
Python
1
star
35

async-process-bench

Rust
1
star
36

turnusol

Easy to use framework for SBCs.(Single-Board Computers)
Erlang
1
star
37

latch

Latch iz eksperimental 1k/4k kompilation syztem
Rust
1
star
38

nuclei-attributes

Attributes for Nuclei
Rust
1
star