# OpAMP Rust The Open Agent Management Protocol (OpAMP) is a network protocol for remote management of agents. This project aims to implement the OpAMP protocol in a client library that can be used by Supervisor processes. By leveraging Rust's memory safety and performance, we aim to provide a reliable and efficient way of transmitting observability metrics. ## Getting Started This library is published as a standard crate. To add it to your project, include it as a dependency inside Cargo.toml like so: ``` [dependencies] otel-opamp-rs = { version = "0.0.8", features = ["http", "websocket", "extras"] } ``` Alternatively, use cargo like so ``` cargo add otel-opamp-rs ``` For more details refer to the [API documentation](https://docs.rs/otel-opamp-rs/latest/otel_opamp_rs/) ## Features This library supports the following capabilities - HTTP support - Websocket support - Gzip compression - Low resource consumption The code references stable releases of the OpAMP protocol protobuf definition [here](https://github.com/open-telemetry/opamp-spec) and aims to be standards compliant on behavior to the published [OpAMP specification](https://github.com/open-telemetry/opamp-spec/blob/main/specification.md) ## Why Fork This vendor independent version emerges from several key motivations: - Preserve the spirit of open source under the rights granted by the Apache 2.0 license - Allow the software to evolve keeping with the spirit of the original design with novel features and methodologies, potentially leading to advancements beyond the scope of the original project - Encourage wider community engagement and contributions fostering a robust and equitable distribution of the benefits of such a project. The original project was hosted at https://github.com/newrelic/otel-opamp-rs This project is no longer affiliated with New Relic and the fork has been created under the rights granted by the Apache 2.0 license under which the original code has been published. Attribution of contributions made to this library towards any open or proprietary product are required by law. ## Building This code uses the current stable release of Rust. To checkout and build the code do the following: ``` git clone --recursive git@github.com:pyrotechnics-io/otel-opamp-rs.git cargo build ``` ## License OpAMP-RS is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License. > The otel-opamp-rs crate also uses source code from third-party libraries. You can find full details on which libraries are used within the Cargo.toml dependency specification section