Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/another-s347/rusty-p4
p4 controller in Rust
https://github.com/another-s347/rusty-p4
p4language p4runtime rust rust-lang sdn sdn-controller
Last synced: about 1 month ago
JSON representation
p4 controller in Rust
- Host: GitHub
- URL: https://github.com/another-s347/rusty-p4
- Owner: another-s347
- License: apache-2.0
- Created: 2019-07-03T09:32:17.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-02-22T15:11:37.000Z (almost 4 years ago)
- Last Synced: 2024-11-17T13:50:12.445Z (2 months ago)
- Topics: p4language, p4runtime, rust, rust-lang, sdn, sdn-controller
- Language: Rust
- Size: 589 KB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Work in Progress
I hope I can finish this.
# Rusty P4 [![Build (Linux)](https://github.com/another-s347/rusty-p4/actions/workflows/build_linux.yml/badge.svg?branch=new_app&event=push)](https://github.com/another-s347/rusty-p4/actions/workflows/build_linux.yml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![dev doc](https://img.shields.io/badge/-dev%20doc-ff69b4)](https://another-s347.github.io/docs/rusty_p4/rusty_p4/)
A Work-in-progress composable and lightweight library for writing [P4Runtime](https://p4.org/specs/) controller in Rust. The goal is to bring powerful & expressive tools into the world of P4 and SDN so that developers can test their ideas faster.It's trying to provide multi-level APIs for writing controllers with different complexity (see Examples below). Some design come from the tutorials of P4 and [ONOS](https://onosproject.org/).
## Repo structure
- rusty-p4-core. The core of rusty-p4, providing the basic building blocks like App trait, Service trait, P4 runtime, Pipeconf, flow and some other things.
- rusty-p4-packet. Provides methods to parse packets.
- rusty-p4-northbound. Provides impls for northbound server.
- rusty-p4-app. Provides some simple application implementation.## Getting Started
Current version hasn't been published, so to use it, add
```
rusty-p4 = { git="https://github.com/another-s347/rusty-p4" }
```
to your Cargo.toml.## Built With
* [tonic](https://github.com/hyperium/tonic) - gRPC for Rust.
* [PI](https://github.com/p4lang/PI) - P4Runtime
* [tokio](https://tokio.rs) - The asynchronous run-time for the Rust programming language.