1 unstable release
✓ Uses Rust 2018 edition
|0.1.0||May 27, 2019|
#87 in Machine learning
Orkhon: ML Inference Framework and Server Runtime
Orkhon is Rust framework for Machine Learning to run/use inference/prediction code written in Python, frozen models and process unseen data. It is mainly focused on serving models and processing unseen data in a performant manner. Instead of using Python directly and having scalability problems for servers this framework tries to solve them with built-in async API.
- Sync & Async API for models.
- Easily embeddable engine for well-known Rust web frameworks.
- API contract for interacting with Python code.
- High processing throughput
- Python Module caching
You can include Orkhon into your project with;
[dependencies] orkhon = "*"
You will need:
- Rust Nightly needed (for now. until async support fully lands in)
- Python dev dependencies installed and have proper python runtime to use Orkhon with your project.
- Point out your
PYTHONHOMEenvironment variable to your Python installation.
For Python API contract you can take a look at the Project Documentation.
let o = Orkhon::new() .config(OrkhonConfig::new()) .pymodel("model_which_will_be_tested", // Unique identifier of the model "tests/pymodels", // Python module directory "model_test", // Python module file name "model_hook" // Hook(Python method) that will be called by Orkhon ) .build(); // Args for the request hook let mut request_args = HashMap::new(); request_args.insert("is", 10); request_args.insert("are", 6); request_args.insert("you", 5); // Kwargs for the request hook let mut request_kwargs = HashMap::<&str, &str>::new(); // Future handle let handle = o.pymodel_request_async( "model_which_will_be_tested", ORequest::with_body( PyModelRequest::new() .with_args(request_args) .with_kwargs(request_kwargs) ) ); // Return the result handle.await.unwrap()
License is MIT
Official documentation is hosted on docs.rs.
We use Gitter for development discussions. Also please don't hesitate to open issues on GitHub ask for features, report bugs, comment on design and more! More interaction and more ideas are better!
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome.
A detailed overview on how to contribute can be found in the CONTRIBUTING guide on GitHub.