14 releases
| new 0.7.3 | May 29, 2026 |
|---|---|
| 0.7.2 | Mar 2, 2026 |
| 0.7.1 | Feb 10, 2026 |
| 0.6.0 | Dec 9, 2024 |
| 0.1.0 | Sep 15, 2021 |
#1551 in Database interfaces
1MB
24K
SLoC
This library allows the creation of custom shotover transforms.
There are two consumers of this library:
Custom Transforms
To create a custom transform you need to implement these traits:
transforms::TransformConfig- Defines what configuration fields the transform has in thetopology.yaml.transforms::TransformBuilder- Defines how to build the Transform for a new incoming connection. Only one instance is created over shotovers runtime.transforms::Transform- Defines the transformation logic of the transform. A new instance is created per incoming connection.
Simple transforms can implement all of these onto a single struct but generally you need seperate structs for each.
The shotover binary
All custom transforms the user wants to use are statically compiled into a single binary.
The crate for this binary is very simple, it just consists of a main.rs like:
shotover::import_transform!(transform_crate::TransformConfig);
fn main() {
shotover::runner::Shotover::new().run_block();
}
Dependencies
~119MB
~2.5M SLoC