baqup-agent

Crates.iobaqup-agent
lib.rsbaqup-agent
version0.0.1
created_at2025-12-07 14:35:50.786486+00
updated_at2025-12-07 14:35:50.786486+00
descriptionSDK for building baqup backup agents in Rust
homepagehttps://github.com/baqupio/baqup
repositoryhttps://github.com/baqupio/baqup-agent-rs
max_upload_size
id1971698
size60,988
Stephen Cox (andronics)

documentation

https://docs.rs/baqup-agent

README

baqup-agent

SDK for building baqup backup agents in Rust.

⚠️ This is a placeholder crate. Full implementation coming soon.

What is baqup?

baqup is a container-native backup orchestration system. Agents are stateless containers that perform backup and restore operations on behalf of the controller.

This SDK provides everything needed to build a compliant baqup agent:

  • Contract types - ExitCode, AgentState, LogLevel
  • Structured logging - JSON logs with required fields
  • Redis communication - Bus client with filesystem fallback
  • Heartbeat management - Background thread with intent signalling
  • Staging utilities - Atomic writes, checksums, path validation
  • Secret handling - Wrapper preventing accidental exposure

Installation

[dependencies]
baqup-agent = "0.0.1"

Usage (Preview API)

use baqup_agent::{ExitCode, AgentState, Secret};

// Exit codes are already available
assert_eq!(ExitCode::Success as i32, 0);
assert_eq!(ExitCode::UsageConfigError as i32, 64);

// Agent states
assert_eq!(AgentState::Running.to_string(), "running");

// Secret wrapper (available now)
let password = Secret::new("my-secret-password");
println!("{}", password);          // [REDACTED]
println!("{}", password.reveal()); // my-secret-password

Contract Compliance

This SDK implements the baqup Agent Contract Specification:

Section Feature
§1 Lifecycle State machine, signal handling
§2 Config Environment variable loading
§3 Communication Redis protocol, fallback
§4 Output Atomic completion, manifests
§5 Errors Exit code taxonomy
§6 Observability Structured logging
§7 Security Path validation, secrets

Features

  • default - Synchronous API only
  • async - Async support with Tokio and Redis
[dependencies]
baqup-agent = { version = "0.0.1", features = ["async"] }

Related Crates

Crate Description
baqup-schema Schema validation
baqup-agent Agent SDK (this crate)

Links

License

Fair Source License - see LICENSE for details.

Commit count: 0

cargo fmt