talos-rust-client
Rust gRPC client for SideroLabs Talos with mTLS support.
Features
- mTLS by default - Secure communication with Talos nodes
- Type-safe API - Generated from official Talos proto files
- Async/await - Built on tokio and tonic
- talosconfig support - Load credentials from Talos config files
- Rustls - Pure Rust TLS implementation
Installation
Add this to your Cargo.toml
:
[]
= "0.1"
To use talosconfig file support:
[]
= { = "0.1", = ["talosconfig"] }
Quick Start
Using certificates directly
use ;
async
Using talosconfig
use TalosConfig;
async
Examples
See the examples directory for more detailed examples:
version.rs
- Get Talos version informationhealth.rs
- Check cluster healthevents.rs
- Stream Talos eventstalosconfig_connect.rs
- Connect using talosconfig
Run examples with:
# Using environment variables for certs
# Using talosconfig
Version Pinning
This crate includes Talos API definitions as a git submodule pinned to a specific release tag. The current version is pinned to v1.10.6.
To update the submodule to a different tag, see CONTRIBUTING.md.
Security
This crate enforces mTLS (mutual TLS) for all connections. There is no option to disable TLS or certificate verification. Always ensure your certificates and keys are kept secure and never logged or exposed.
License
This project is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.