volga-di 0.6.2

Dependency Injection tools for Volga Web Framework
Documentation

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.2"

Part of Volga Web Framework

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

Derive-macro support

[dependencies]
volga = { version = "0.6.2", 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...
}