#plugin #quic #host #companion #api #pointers #pluginizable

pluginop

A companion library to make a QUIC implementation pluginizable

1 unstable release

0.1.0 Jun 3, 2024

#552 in Rust patterns

Download history 218/week @ 2024-06-03 5/week @ 2024-06-10

223 downloads per month

MIT/Apache

140KB
2.5K SLoC

PluginOp: Pluginizable Operations

Test Benchmark Test coverage

One day, we will make the Internet great again. In the meantime, we struggle with engineering problems.

PluginOp is a crate intending to make (Rust) network implementation seamlessly pluginizable. The project consists in several sub-crates:

  • pluginop-common: contains all the common structures (part of the standardized API) shared by both the plugins and the host implementation
  • pluginop: the main crate of this project, used by the host implementation to be pluginizable
  • pluginop-macro: contains macros to be used by the host implementation to pluginize its functions using one-liners
  • pluginop-mock: a mocking host implementation used to test and benchmark the whole project
  • pluginop-octets: a fork of the quiche's octets crate with support to raw pointer conversion
  • pluginop-rawptr: an abstraction over raw pointers
  • pluginop-wasm: the crate offering an API to plugins

The tests folder contains plugins for tests and benchmarks purposes.

Supported Core Implementations

  • core-quic: Based on quiche, main core implementation
  • core-quinn: Based on quinn, mostly integrated in the quinn-proto crate. Does not have full support (yet), but simple frame-based plugins work.

Existing plugins

QUIC-specific plugins are available at the core-quic-plugins repo.

Dependencies

~18–29MB
~530K SLoC