#messaging #solace #pub-sub #events #broker #client #persistent

solace-rs

The Unofficial Solace PubSub+ Rust Client Library. It can be used to access the services of a Solace PubSub+ Event Broker. This is a wrapper around the Solace C library. Use under your own risk! The C library is not included.

29 releases (6 breaking)

new 0.7.3 Nov 7, 2024
0.7.2 Oct 8, 2024
0.6.1 Oct 2, 2024
0.5.0 Jun 1, 2024
0.1.8 Sep 25, 2023

#887 in Network programming

Download history 67/week @ 2024-07-25 8/week @ 2024-08-01 209/week @ 2024-09-26 544/week @ 2024-10-03 87/week @ 2024-10-10 2/week @ 2024-10-17

842 downloads per month

MIT license

285KB
6.5K SLoC

Solace-rs

crates.io docs.rs ci

The Unofficial Solace PubSub+ Rust Client Library.

Focuses on providing safe and idiomatic rust API over the C Solace library.

Features

  • Publishing and subscribing
    • Direct
    • Persistent
  • Solcache - (Untested)
  • Request Reply
  • Async - TODO

Installation

cargo add solace-rs

Right now, the library only supports static linking with solace-c-library. You can provide either a path, a url to download the library from or default (will download from default library source). The prority is also in the same order if multiple are defined.

Lib Path

You can configure the lib path to use for the solace c library. It must contain the solcient object files. Just add the following configurable-env to your config.toml file

[env]
SOLCLIENT_LIB_PATH=path_to_c_library_with_object_files

URL

You can configure the url to use for downloading the solace c library. Just add the following configurable-env to your config.toml file

[env]
SOLCLIENT_TARBALL_URL=link_to_c_library_tar_ball

Examples

You can find examples in the examples folder. The examples assume you have solace running on localhost:55554. To run them:

cargo run --example <example_name> -- <example_args>

Minimum supported Rust version (MSRV)

The current minimum supported Rust version (MSRV) is 1.70.0.

OS Support / CI Tests

  • linux
  • linux-musl
  • macos-12
  • windows (no plans)

Dependencies

~0.7–5.5MB
~106K SLoC