Ice Core is a high performance web server library written in Rust.
Prebuilt binaries for Linux and macOS can be found in Releases.
To build from source, make sure you have the Rust toolchain installed, and then
cargo build --release.
To build with Cervus Engine enabled, LLVM 3.8 is required. Then, build with
cervus feature enabled:
cargo build --release --features cervus
After you've got
libice_core.dylib built or downloaded, put it in the OS's default path for shared libraries. This is typically
/usr/lib for Linux and
$HOME/lib for macOS.
The Node.js web framework, Ice-node, built on Ice Core, is 125% faster than raw Node HTTP implementation.
The Python 3 bindings for Ice Core, named Ice-python (pyice_base), is at least 6x faster than other tested Python web frameworks, including Sanic, aiohttp, BaseHTTPServer and Flask.
For requests that hit the Cervus Engine before being dispatched to endpoints, the performance is even better, 40% faster than Go
Both Ice-node and pyice_base are based on ice-cpp, which wraps all core APIs into C++.
To begin with, it's suggested to read test.cpp, which implements a simple server.
If you want to use the core APIs directly instead of the C++ wrapper, imports.h contains exported C symbols and is available for use.
- Ice-node is ready as a full-featured Web microframework.
- pyice_base needs further development for user-friendly abstractions.
It's easy to write bindings and frameworks for other languages, following the Core Integration section. Contributions are always welcome!