3 unstable releases

0.1.1 Jul 10, 2024
0.1.0 Jun 14, 2024
0.0.0 Mar 20, 2024

#302 in Cargo plugins

LGPL-3.0-or-later

125KB
2K SLoC

cargo-prosa

ProSA is a framework that handles processors organized around a service bus. As such, ProSA needs to be built from internal or external Processors/Adaptor/Main.

cargo-prosa is a utility to package and deliver a builded ProSA. This builder is packaged within cargo as a custom command to be well integrated with the Rust ecosystem.

Install

To use it, you need to install it within Cargo.

cargo install cargo-prosa

Use

Create your own ProSA (work like cargo):

cargo prosa new my-prosa
# or from an existing folder, init it
cargo prosa init

cargo-prosa is meant to evolve in the future. So maybe new things will be introduced. To update your model, you can update the generated file with cargo prosa update.

If you have different main/tvf, select them:

cargo prosa main MainProc
cargo prosa tvf SimpleStringTvf

Add your dependencies and your processor with its adaptor name

cargo add prosa
cargo prosa add -n stub-1 -a StubParotAdaptor stub

Once your ProSA is specified, the file ProSA.toml will contain the configuration. This file can be edited manually if you want.

Your project uses a build.rs/main.rs to create a binary that you can use.

Configuration

Keep in mind that you also need to have a settings file.

You can initiate a default one with:

cargo run -- -c default_config.yaml --dry_run

A configuration file contains:

  • name: Name of your ProSA
  • observability: Configuration of log/trace/metrics
  • a map of processor name -> their settings

Run

When your ProSA is built, you can deploy like any Rust binary. So you'll find it in the target folder.

And you can run it:

cargo run -- -n "MyBuiltProSA" -c default_config.yaml
# or with binary
target/debug/my-prosa -n "MyBuiltProSA" -c default_config.yaml

Dependencies

~20–33MB
~514K SLoC