Selium
Selium is an extremely developer friendly, composable messaging platform with zero build time configuration.
Getting Started
Hello World
First, create a new Cargo project:
Copy the following code into hello-world/src/main.rs
:
use ;
use ;
async
For the purpose of testing, developing Selium, or otherwise jumping straight into the action, you can use the selium-tools
CLI to generate a set of self-signed certificates for use with mTLS.
To do so, install the selium-tools
binary, and then run the gen-certs
command. By default, gen-certs
will output the certs to certs/client/*
and certs/server/*
. You can override these paths using the -s
and -c
arguments respectively.
Next, open a new terminal window and start a new Selium server, providing the certificates generated in the previous step.
Finally, in our original terminal window, run the client:
Running Benchmarks
Included in the repository is a benchmarks
binary containing end-to-end benchmarks for the publisher/subscriber clients.
These benchmarks measure the performance of both encoding/decoding message payloads on the client, as well the responsiveness of the Selium server.
To run the benchmarks with the default options, execute the following commands:
This will run the benchmarks with default values provided for the benchmark configuration arguments, which should produce a summary similar to the following:
| | | | |
| | | | |
)
If the default configuration is not sufficient, execute the following command to see a list of benchmark arguments.
Next Steps
Selium is a brokered messaging platform, meaning that it has a client and a server component. Check
out the client
and server
crates for more details.
We also have the user guide that includes all of this information and much more. Our Getting Started chapters will step you through the process of setting up a secure, working Selium platform in 5 minutes or less.
Contributing to Selium
We'd love your help! If there's a feature you want, raise an issue first to avoid disappointment. While we're happy to merge contributions that are in line with our roadmap, your feature may not quite fit. Best to check first.