i am original author of pyo3. Yuri Selivanov (author of uvloop and edgedb) suggested pyo3 name.
HN user
fafhrd91
name was chosen after `uranium trioxide`, pythonium trioxied - pyo3
You still need to initialize inner structures and buffers. Cache allows to avoid that.
This is 1.0 bench
We use actix at azure iot
one thread in best case. But process may die. Depends on panic
Actix provides actor abstraction over synchronous code and allows to communicate with it in async manner. TechEmpower benchmarks uses sync actors for db operations and http part is async. I am not sure how this help though, tokio-minihttp also uses threadpool for db operations, results are not that good
From repo activity Shio seems dead. And here is for gotham https://gotham.rs/blog/2018/05/31/the-state-of-gotham.html
i think from ergonomics standpoint, actix is very close to rocket. of course rocket has some advantage, but actix compiles on stable and has zero codegen code. as soon as proc macro stabilizes both will be on par.
from performance perspective, actix is faster than rocket on any type of load.
first, you need to define what is crash in rust means. panic or error. in general case you can not recover from panic. in case of error, type system prevents unhanded errors in actors. you can restart actor, but that is controlled by developer action.
we use actix. but that is all i can share :)
recent TechEmpower benchmarks results
Citrine: https://www.techempower.com/benchmarks/#section=test&runid=6...
Azure: https://www.techempower.com/benchmarks/#section=test&runid=b...
I like how author writes! And previous post on web dev in rust is very good as well
a lot of has changed since 2015. scalable http/1, http2/, websockets libraries and frameworks are available. and with async/await async programming will be even simpler.
i'd say in most projects i worked, threads would be enough. but it is so boring :) new shiny async code is much more entertaining!
on other hand we should talk about C100k or C1m problems.
i just added extractors system. it is not released yet, i am planing to release it later this week
https://actix.github.io/actix-web/actix_web/struct.Route.htm...
Writing good docs is hard for sure! Especially for developers, you just want to write cool code :) but take into an account lifetime of the projects, compared to python all of them pretty young. For example I started actix-web just 5 months ago, sure it needs more documentation
I'd like to mention actix, it is an actor framework for Rust language. it is single process at the moment, but distributed version is in development.
Actix is number 7 in TechEmpower plaintext benchmark
https://www.techempower.com/benchmarks/#section=data-r15&hw=...
Actix web is a small, pragmatic, extremely fast, web framework for Rust.
* Supported HTTP/1.x and HTTP/2.0 protocols
* Streaming and pipelining
* Keep-alive and slow requests handling
* Client/server WebSockets support
* Transparent content compression/decompression (br, gzip, deflate)
* Configurable request routing
* Graceful server shutdown
* Multipart streams
* Middlewares
There is no guide for actix but I am planing to add one
you can always try rust in parallel with python code with libraries like pyo3
stable rust is only two years old. we just need some more time
you should check it again :) actix-web now has user guide https://actix.github.io/actix-web/guide/
here is irc bot (wip) https://github.com/DoumanAsh/roseline.rs
tokio-minihttp is 1 in plaintext benchmark in TechEmpower Web frameworks benchmark
https://www.techempower.com/benchmarks/#section=data-r15&hw=...
https://github.com/PyO3/pyo3 Rust/Python is very good
Pyo3 is not affected by this issue. pyo3 compiles in c-api interface, it doesn't use separate libs for that (python27-sys)
My point is, you are not limited with using extensions only for optimizing hot loops, in rust you can write application logic as well. I doubt you should do this in C for example