10 releases (5 breaking)
new 0.6.0 | Dec 9, 2024 |
---|---|
0.5.3 | Nov 21, 2024 |
0.5.1 | Oct 29, 2024 |
0.4.1 | Jul 23, 2024 |
0.1.0 | Sep 15, 2021 |
#309 in Database interfaces
174 downloads per month
1MB
23K
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
~31–49MB
~893K SLoC