Skip to content

Releases: mira-mobility/rustici

📦 Release v1.1.1

Choose a tag to compare

@maves137 maves137 released this 25 Feb 09:22
3870f9b

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.1.1

🎉 rustici v1.1.0: First Bugfix Release

Choose a tag to compare

@AlexanderNeumann AlexanderNeumann released this 04 Sep 14:21
ae96aa6

📦 Release v1.1.0

✨ Added

  • try_next_event method.
  • Timeout variant to the Error enum with Display implementation.

🔄 Changed

  • next_event should now consider timeouts.
  • Expanded Rustdoc with additional examples and clarified Client API behavior.
  • Added main() wrappers with Result return 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

Choose a tag to compare

@AlexanderNeumann AlexanderNeumann released this 28 Aug 14:17
af2d7a5

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

🌱 New Contributors

👉 Full Changelog: v1.0.0 commits