Releases: mira-mobility/rustici
Release list
📦 Release v1.1.1
What's Changed
- ci(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #8
- ci(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #9
- chore: Impl Debug for Element by @maves137 in #10
- bump version by @maves137 in #11
New Contributors
Full Changelog: v1.1.0...v1.1.1
🎉 rustici v1.1.0: First Bugfix Release
📦 Release v1.1.0
✨ Added
try_next_eventmethod.Timeoutvariant to theErrorenum withDisplayimplementation.
🔄 Changed
next_eventshould now consider timeouts.- Expanded Rustdoc with additional examples and clarified Client API behavior.
- Added
main()wrappers withResultreturn types to documentation examples.
🧪 Tests
- Added timeout integration tests with a mock VICI server.
🐛 Fixed
- Resolved issue where the event listener could not be stopped due to a blocking call by introducing timeout support.
📦 Maintenance
- Version bump to include these changes.
🚀 rustici v1.0.0: First Stable Release
We are thrilled to announce rustici v1.0.0, the first stable release of a pure Rust client library for strongSwan’s VICI protocol!
With rustici, you can programmatically manage IPsec connections in a safe, idiomatic Rust way: No FFI, no unsafe code, and no external dependencies.
✨ About rustici
rustici is a lightweight and robust implementation of the Versatile IKE Configuration Interface (VICI), used to control the charon daemon in strongSwan.
It is designed for developers who need a reliable Rust-native API for working with IPsec.
🔑 Key Features
- ✅ Pure Rust implementation — no FFI, no unsafe, zero external dependencies
- 📡 Full wire protocol support — encode/decode packets, sections, lists, and key-values
- ⌛ Synchronous client — blocking I/O over UNIX domain sockets for simplicity
- 🔔 Event handling — subscribe to and process strongSwan events
- 🔄 Streaming commands — support for multi-event responses
- ⚖️ LGPL-2.1+ licensed — suitable for open source and commercial projects
📦 Installation
Add rustici to your Cargo.toml:
[dependencies]
rustici = "1.0.0"🚀 Quick Start
use rustici::{Client, Message};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut cli = Client::connect("/var/run/charon.vici")?;
let req = Message::new();
let resp = cli.call("list-sas", &req)?;
println!("{}", resp);
Ok(())
}📚 Documentation & Resources
🙏 Acknowledgments
This project was inspired by the excellent davici library from the strongSwan project.
Big thanks to the strongSwan team for their protocol design and documentation.
📜 What’s Changed
- Chore: GitHub config by @Kiesen in #1
- CI: bump
actions/checkout4 → 5 by @dependabot[bot] in #2 - CI: bump
codecov/codecov-action4 → 5 by @dependabot[bot] in #3 - CI: bump
rustsec/audit-check1.4.1 → 2.0.0 by @dependabot[bot] in #4 - Docs: add contributing guidelines and development setup by @AlexanderNeumann in #5
🌱 New Contributors
- @Kiesen made their first contribution in #1
- @dependabot[bot] made their first contribution in #3
- @AlexanderNeumann made their first contribution in #5
👉 Full Changelog: v1.0.0 commits