injectium 0.4.0

Minimal dependency-injection implementation for Rust
Documentation

injectium

Crates.io Version docs.rs

A minimal dependency-injection implementation for Rust.

Installation

cargo add injectium

Quick Start

use injectium::{Injectable, cloned, container};

#[derive(Clone)]
struct Db {
    conn: String,
}

#[derive(Injectable)]
struct Service {
    db: Db,
}

// At startup, build the container
let c = container! {
    providers: [
        cloned(Db { conn: "postgres://localhost".into() }),
    ],
};

// Validate everything is wired up
c.validate();

// Later, resolve services
let svc = Service::from_container(&c);

Documentation

See docs.rs for full API documentation.

Crates

Crate Description
injectium Main crate with derive macro
injectium-core Core container implementation
injectium-macro Procedural macros
injectium-salvo Salvo web framework integration

License

MIT. Made with ❤️ by Ray