ice_core 0.3.2

High performance Web engine
docs.rs failed to build ice_core-0.3.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: ice_core-0.4.0-alpha.4

Ice Core

Build Status

Ice Core is a high performance web server library written in Rust.

Install

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.so or 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.

Performance

Benchmark result

The Node.js web framework, Ice-node, built on Ice Core, is 70% faster than raw Node HTTP implementation.

The Python 3 bindings for Ice Core, named Ice-python (pyice_base), is at least 4x 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, similar to Go net/http.

Core Integration

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.

Development

  • 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!