Skip to content
ntex-rsPublic

About

framework for composable networking services

Topics

Resources

Stars

2.5k stars

Watchers

37 watching

Forks

Repository files navigation

ntex

Framework for composable network services.

Linux crates.io Documentation MSRV License codecov Discord

ntex provides a strongly typed component for building asynchronous network applications. It includes HTTP/1, HTTP/2, WebSocket, TLS, and runtime-independent I/O support. MQTT, AMQP, and gRPC are provided by related projects.

Build status

Platform Status
Linux Linux
macOS macOS
Windows Windows

Usage

Add ntex to your project:

[dependencies]
ntex = "4"

A minimal web server looks like this:

use ntex::{SharedCfg, web};

#[web::get("/")]
async fn index() -> &'static str {
    "Hello world!"
}

#[ntex::main]
async fn main() -> std::io::Result<()> {
    web::HttpServer::new(async |_| web::App::new().service(index))
        .bind("127.0.0.1:8080", SharedCfg::new("hello-world"))?
        .run()
        .await
}

Runtime selection

Without an explicit runtime feature, ntex uses its native single-threaded runtime and automatically selects a platform I/O reactor:

  • Linux tries io_uring and falls back to polling.
  • Other Unix platforms use polling.
  • Windows uses IOCP.

Alternative runtimes and native reactors can be selected with Cargo features:

Feature Runtime or reactor
tokio Tokio local runtime and I/O driver
compio Compio runtime and completion-based I/O
neon-polling Native runtime with the polling reactor on Unix
neon-uring Native runtime with io_uring on Linux

Enable at most one runtime or native-reactor selection feature. For example:

[dependencies]
ntex = { version = "4", features = ["tokio"] }

Optional features

  • openssl and rustls enable the corresponding TLS integrations.
  • compress enables HTTP content compression (gzip, deflate and zstd).
  • cookie enables cookie support.
  • ws enables WebSocket APIs and is enabled by default.

Related projects

Project Description
ntex-mqtt Client and server framework for MQTT v5 and v3.1.1
ntex-amqp Client and server framework for AMQP 1.0
ntex-grpc Client and server framework for gRPC

Documentation and community

License

This project is licensed under either of:

About

framework for composable networking services

Topics

Resources

Stars

2.5k stars

Watchers

37 watching

Forks

Releases

Packages

Used by

Contributors

Languages