Hodu (호두) is a Korean word meaning "walnut".
Tensor ops, model building, inference, deployment. All in one.
Run, convert, build models from the command line.
$ cargo install hodu-cli$ hodu plugin install aot-cpu
$ hodu run model.onnx --input x=input.npy
$ hodu build model.hdss -o model
$ hodu build model.onnx -o model.dylibCore library for tensors and models.
use hodu::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
set_runtime_device(Device::CPU);
let a = Tensor::randn(&[2, 3], 0f32, 1.)?;
let b = Tensor::randn(&[3, 4], 0f32, 1.)?;
let c = a.matmul(&b)?;
println!("{}", c);
Ok(())
}Build your own format/backend plugins. JSON-RPC over stdio.
$ curl -fsSL https://raw.githubusercontent.com/daminstudio/hodu/main/hodu-plugin-sdk/new.sh | shOfficial plugins: hodu-plugins
The Rust ecosystem already has great ML libraries like Candle and Burn. But we saw a different problem.
Most ML workflows look like this: write a model in Python, export to ONNX, convert to an inference runtime, then deploy. Each step uses different tools, different formats, different constraints. Deploying a single model means juggling Python, C++, and platform-specific SDKs.
Hodu unifies this pipeline into one ecosystem.
hodu (cli) follows a simple principle: one command gets you what you need. hodu run for inference, hodu build for native binaries, hodu inspect to examine models. No config files or build scripts required.
hodu (lib) gives you a familiar PyTorch-style API for building models. Operations can be captured into a computation graph for optimization and compilation. Every kernel is implemented from scratch—no external ML runtime dependencies.
hodu-plugin-sdk keeps Hodu open for extension. Plugins run as separate processes communicating via JSON-RPC, so you can write them in any language. Need a new model format or hardware backend? Build a plugin without touching Hodu's core.
- Tools should get out of your way. Focus on models, not configuration.
- One language, one ecosystem. Prototype to production in Rust, no language switching.
- Extension should be open. We can't support everything, so anyone can add what they need.
Note: The project structure is still being established. For now, please open an issue first before submitting pull requests. This helps us coordinate work and avoid conflicts during this early stage.
Bug reports, feature requests, and feedback are always welcome!
Check out CONTRIBUTING.md for guidelines.
This project is licensed under the BSD-3-Clause License.
All icons, characters, and visual assets are created by 해꿈(sundream) and © Han Damin. All rights reserved. These assets may not be used, modified, or distributed for any purpose, commercial or non-commercial, without explicit written permission from the copyright holder. See Assets License for details.
For licensing inquiries, contact: miniex@daminstudio.net
