Skip to main content

vpp_plugin/
lib.rs

1#![warn(
2    missing_docs,
3    missing_copy_implementations,
4    clippy::undocumented_unsafe_blocks
5)]
6
7//! # Framework for writing high-performance VPP plugins in Rust
8//!
9//! [VPP](https://wiki.fd.io/view/VPP/What_is_VPP%3F) is a high performance packet processing
10//! with support for a large number of features, and enables writing plugins to extend its
11//! functionality.
12//!
13//! This crate provides the core functionality for writing VPP plugins in Rust. It includes
14//! bindings to the VPP C API, as well as abstractions for writing VPP nodes, with the goal of
15//! having performance parity with C plugins for fast path packet processing.
16//!
17//! # Features
18//!
19//! The following features are available:
20//! - `experimental`: Used for functionality and types that aren't tested or are not part of the
21//!   stable API yet as aspects of them might still be under consideration. APIs conditional on
22//!   this feature may be added, changed or removed without the semantic versioning reflecting
23//!   this.
24
25pub mod bindings;
26#[doc(hidden)]
27pub mod macro_support;
28pub mod vlib;
29pub mod vlibapi;
30pub mod vnet;
31pub mod vppinfra;
32
33// Re-export macros for convenience
34pub use vpp_plugin_macros::{
35    ErrorCounters, NextNodes, vlib_cli_command, vlib_init_function, vlib_node,
36    vlib_plugin_register, vnet_feature_init,
37};
38
39/// Re-exported for use by code generated by vpp-plugin-api-gen
40pub extern crate bitflags;