4 releases

0.6.6 Sep 28, 2025
0.6.4 Sep 5, 2025
0.6.3 Aug 1, 2025
0.6.2 Aug 1, 2025

#548 in WebSocket

Download history 240/week @ 2025-07-30 36/week @ 2025-08-06 18/week @ 2025-08-20 12/week @ 2025-08-27 146/week @ 2025-09-03 30/week @ 2025-09-10 18/week @ 2025-09-17 127/week @ 2025-09-24 57/week @ 2025-10-01 24/week @ 2025-10-08 31/week @ 2025-10-15 17/week @ 2025-10-22

135 downloads per month
Used in 2 crates (via volga)

MIT license

27KB
512 lines

Volga DI

A standalone, flexible, and easy-to-configure DI container.

latest latest License: MIT Build Release

💡 Note: This project is currently in preview. Breaking changes can be introduced without prior notice.

Getting Started

Dependencies

Standalone

[dependencies]
volga-di = "0.6.6"

Part of Volga Web Framework

[dependencies]
volga = { version = "0.6.6", features = ["di"] }

Derive-macro support

[dependencies]
volga = { version = "0.6.6", features = ["di-full"] }

Example

use std::collections::HashMap;
use std::sync::{Arc, Mutex};

#[derive(Default)]
struct InMemoryCache {
    inner: Arc<Mutex<HashMap<String, String>>>
}

fn main() {
    let mut container = ContainerBuilder::new();
    container.register_singleton(InMemoryCache::default());

    let container = container.build();

    let Ok(cache) = container.resolve::<InMemoryCache>() else { 
        eprintln!("Unable to resolve InMemoryCache")
    };

    // Do work...
}

Dependencies

~520–710KB
~12K SLoC