armature-discovery

Crates.ioarmature-discovery
lib.rsarmature-discovery
version0.1.0
created_at2025-12-26 18:47:27.369657+00
updated_at2025-12-26 18:47:27.369657+00
descriptionService discovery for Armature microservices
homepagehttps://pegasusheavy.github.io/armature
repositoryhttps://github.com/pegasusheavy/armature
max_upload_size
id2006078
size82,690
Joseph R. Quinn (quinnjr)

documentation

README

armature-discovery

Service discovery for the Armature framework.

Features

  • Service Registration - Register services on startup
  • Service Discovery - Find other services
  • Health Checks - Automatic health monitoring
  • Load Balancing - Client-side load balancing
  • Multiple Backends - Consul, etcd, Kubernetes

Installation

[dependencies]
armature-discovery = "0.1"

Quick Start

use armature_discovery::{Discovery, ConsulBackend};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let discovery = Discovery::consul("http://localhost:8500").await?;

    // Register this service
    discovery.register("my-service", "http://localhost:3000").await?;

    // Discover other services
    let instances = discovery.discover("user-service").await?;

    // Get one instance (load balanced)
    let instance = discovery.get_instance("user-service").await?;

    Ok(())
}

Backends

Consul

let discovery = Discovery::consul("http://localhost:8500").await?;

etcd

let discovery = Discovery::etcd("http://localhost:2379").await?;

Kubernetes

let discovery = Discovery::kubernetes().await?;

License

MIT OR Apache-2.0

Commit count: 0

cargo fmt