| Crates.io | tenjin_sdn |
| lib.rs | tenjin_sdn |
| version | 1.0.2 |
| created_at | 2024-08-07 10:24:26.52276+00 |
| updated_at | 2025-05-08 07:42:53.096171+00 |
| description | Tenjin is The software-defined networking framework written in Rust, offering high performance and memory safety. It can be used as both a framework and a command line tool. |
| homepage | |
| repository | https://github.com/Arikato111/Tenjin |
| max_upload_size | |
| id | 1328272 |
| size | 261,842 |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install tenjin_sdn
tenjin run
cargo add tenjin_sdn
cargo add tokio
use tenjin_sdn::{example, openflow::ofp13::ControllerFrame13};
#[tokio::main]
async fn main() {
let controller = example::Controller13::new();
controller.listener("127.0.0.1:6633");
}
cargo add etherparse
# Run default controller (OpenFlow 1.3)
tenjin run
# Run OpenFlow 1.0 controller
tenjin run ctrl10
# Run on specific ports
tenjin run --port 6653
tenjin run --port 6653,6633
For more options:
tenjin run --help
sudo mn --controller=remote,ip=127.0.0.1 --mac --switch=ovsk,protocols=OpenFlow13 --topo=tree,2
sudo mn --controller=remote,ip=127.0.0.1 --mac --switch=ovsk,protocols=OpenFlow10 --topo=tree,2
For faster compilation, you can install only the features you need:
cargo install tenjin_sdn --no-default-features
To include example controllers, add the example feature:
cargo install tenjin_sdn --no-default-features -F example
Using cargo-binstall for pre-compiled binaries:
cargo binstall tenjin_sdn
run the following command to pull and run.
docker run -it --rm --name tenjin ghcr.io/arikato111/tenjin:latest run
or using alias command on Linux.
alias tenjin='docker run -it --rm --name tenjin ghcr.io/arikato111/tenjin:latest'