All Projects → vertexclique → Nuclei

vertexclique / Nuclei

Proactive IO & Runtime system

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Nuclei

Byte Stream
A non-blocking stream abstraction for PHP based on Amp.
Stars: ✭ 208 (+84.07%)
Mutual labels:  async, io
Trio
Trio – a friendly Python library for async concurrency and I/O
Stars: ✭ 4,404 (+3797.35%)
Mutual labels:  async, io
Codejam
Set of handy reusable .NET components that can simplify your daily work and save your time when you copy and paste your favorite helper methods and classes from one project to another
Stars: ✭ 217 (+92.04%)
Mutual labels:  async, io
Lightio
LightIO is a userland implemented green thread library for ruby
Stars: ✭ 165 (+46.02%)
Mutual labels:  async, io
Runtimepermission
Simpliest way to ask runtime permissions on Android, no need to extend class or override permissionResult method, choose your way : Kotlin / Coroutines / RxJava / Java7 / Java8
Stars: ✭ 860 (+661.06%)
Mutual labels:  async, runtime
Smol
A small and fast async runtime for Rust
Stars: ✭ 2,206 (+1852.21%)
Mutual labels:  async, runtime
toyhttpd
I/O 模型练手代码,分别使用阻塞式 I/O、select、poll 和 epoll 和 Java NIO 实现了简单的 HTTP Server
Stars: ✭ 43 (-61.95%)
Mutual labels:  io, epoll
hev-task-system
A simple, lightweight multi-task system (coroutines) for Unix (Linux/BSD/macOS)
Stars: ✭ 41 (-63.72%)
Mutual labels:  io, epoll
Swiftcoroutine
Swift coroutines for iOS, macOS and Linux.
Stars: ✭ 690 (+510.62%)
Mutual labels:  async, lock-free
Asks
Async requests-like httplib for python.
Stars: ✭ 429 (+279.65%)
Mutual labels:  async, io
Mioco
[no longer maintained] Scalable, coroutine-based, fibers/green-threads for Rust. (aka MIO COroutines).
Stars: ✭ 125 (+10.62%)
Mutual labels:  async, io
Traffic Shm
traffic-shm (Anna) is a Java based lock free IPC library.
Stars: ✭ 72 (-36.28%)
Mutual labels:  async, lock-free
Socket
Non-blocking socket and TLS functionality for PHP based on Amp.
Stars: ✭ 122 (+7.96%)
Mutual labels:  async, io
Computed Types
🦩 Joi like validations for TypeScript
Stars: ✭ 197 (+74.34%)
Mutual labels:  async, runtime
Zap
An asynchronous runtime with a focus on performance and resource efficiency.
Stars: ✭ 162 (+43.36%)
Mutual labels:  io, runtime
Actix Net
A collection of lower-level libraries for composable network services.
Stars: ✭ 415 (+267.26%)
Mutual labels:  async, runtime
May
rust stackful coroutine library
Stars: ✭ 909 (+704.42%)
Mutual labels:  async, io
Memento
Fairly basic redis-like hashmap implementation on top of a epoll TCP server.
Stars: ✭ 74 (-34.51%)
Mutual labels:  async, epoll
Confluo
Real-time Monitoring and Analysis of Data Streams
Stars: ✭ 1,428 (+1163.72%)
Mutual labels:  lock-free
Aiormq
Pure python AMQP 0.9.1 asynchronous client library
Stars: ✭ 112 (-0.88%)
Mutual labels:  async

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 by default set to Bastion's executor. If you want to use different executor, you can use one of the available runtimes with one of these features: bastion, asyncstd, tokio, smol.

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".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].