Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ntex: Powerful, pragmatic, fast framework for composable networking services (ntex.rs)
40 points by daureg on March 23, 2024 | hide | past | favorite | 10 comments


Is it any good? Why pick this versus other options? I poked around the docs and didn’t find any ecosystem comparison discussion.


I can't speak to the "is it any good" part, but (after a bit of research) I can share what I've found. I'll try to represent things as best as I understand, but I may have some finer details mixed up.

ntex is written by the same person that started actix-web, Nikolay Kim (fafhrd91 on GitHub). There was a bunch of drama a while back due to actix-web using (what many reasoned to be) avoidable unsafe code, which was later found to be buggy. Nikolay was pilloried online, resulting in him transferring leadership of actix-web to someone else. ntex is, as I understand it, essentially Nikolay picking back up on his ideals for what could have been actix-web, if people hadn't pushed him out of his own project.

How ntex compares to the pre-/post-leadership change of actix-web, I don't know.

Here are some jumping points if you want more of the backstory.

https://www.theregister.com/2020/01/21/rust_actix_web_framew...

https://steveklabnik.com/writing/a-sad-day-for-rust

https://github.com/actix/actix-web/issues/1289

https://github.com/fafhrd91/actix-web-postmortem


Thanks, very helpful context


ntex was formed after a schism in actix-web (https://actix.rs) and Rust safety/unsafety, with ntex allowing more unsafe code for better performance.

ntex is at the top of the TechEmpower benchmarks and beats most other Rust frameworks, although those benchmarks are not apples-to-apples since each uses its own tricks to eek out more performance: https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s...


> Starting ntex v0.5 async runtime must be selected as a feature. Available options are glommio, tokio or async-std.

Ooohhh it has Glommio support! Very cool! A very cool runtime that deserves more attention/package support.


What's very cool about it?


Thread-per-core style, with executors pinned to cores/core-regions. IO_URING and DirectIO support, and a bunch of nice utilities to make working with the thread-per-core style and sharding easy, including a neat utility to automatically mesh all your executors together with incoming outgoing channels.


Since when has the broad term "networking" started referring to just Web protocols? Can I use this to build any random server (like, say, an FTP server) that provides services over the network? Skimming the docs, it doesn't seem like it.


What are "composable networking services?"


Looks like some kind of http/tls server




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: