Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bkonkle/nakago
A lightweight async dependency injection toolkit for Rust
https://github.com/bkonkle/nakago
async dependency-injection graphql http rust
Last synced: 5 days ago
JSON representation
A lightweight async dependency injection toolkit for Rust
- Host: GitHub
- URL: https://github.com/bkonkle/nakago
- Owner: bkonkle
- License: mit
- Created: 2023-02-08T16:45:35.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-18T18:13:22.000Z (about 2 months ago)
- Last Synced: 2024-12-23T00:06:23.569Z (12 days ago)
- Topics: async, dependency-injection, graphql, http, rust
- Language: Rust
- Homepage: https://nakago.dev/
- Size: 1.95 MB
- Stars: 46
- Watchers: 5
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Nakago (中子)
A lightweight async dependency injection toolkit for Rust
[![Crates.io](https://img.shields.io/crates/v/nakago.svg)](https://crates.io/crates/nakago)
[![Docs.rs](https://docs.rs/nakago/badge.svg)](https://docs.rs/nakago)
[![CI](https://github.com/bkonkle/nakago/workflows/CI/badge.svg)](https://github.com/bkonkle/nakago/actions)
[![Coverage Status](https://codecov.io/gh/bkonkle/nakago/branch/main/graph/badge.svg?token=BXEZAMHVLP)](https://codecov.io/gh/bkonkle/nakago)[![Rust](https://img.shields.io/badge/rust-2021-a72145?logo=rust&style=flat)](https://www.rust-lang.org)
[![Tokio](https://img.shields.io/badge/tokio-463103?logo=rust&style=flat)](https://tokio.rs)
[![Axum](https://img.shields.io/badge/axum-7b5312?logo=rust&style=flat)](https://crates.io/crates/axum)Nakago is a toolkit for building Rust applications with a modular structure, taking advantage of dependency injection to bring organization and testability to Rust projects large and small.
## ⚠️ Alpha Disclaimer
NOTE: This library is in early development, and the API may shift rapidly as it evolves. Be advised that this is not yet recommended for Production use.
## Features
- [Dependency Injection](https://nakago.dev/docs/features/dependency-injection)
- [HTTP Adapter](https://nakago.dev/docs/features/axum-http) for [Axum](https://github.com/tokio-rs/axum) and [Warp](https://github.com/seanmonstar/warp)
- [SQL Adapter](https://nakago.dev/docs/features/sea-orm) for [SeaORM](https://github.com/SeaQL/sea-orm)
- [GraphQL Adapter](https://nakago.dev/docs/features/async-graphql) for [Async-GraphQL](https://github.com/async-graphql/async-graphql)
- CQRS Adapter using [CQRS-ES](https://crates.io/crates/cqrs-es) (upcoming)As development progresses, components will be split up into separate crates, so that developers can install only what they need.
## Installation
### Cargo
- Install Rust and Cargo by following [this guide](https://www.rust-lang.org/tools/install).
- Run `cargo install nakago`, along with `cargo install nakago-derive`, `cargo install nakago-axum`, etc. for each feature you need.## Etymology
Nakago (中子) is a Japanese word meaning "core", or less commonly the "middle of a nest of boxes". It often refers to the [tang]() of a Japanese katana - the foundation of the hilt and the mechanism through which a sword is wielded. The nakago must be sound and resilient, allowing the holder to guide the blade with confidence.
## Development
See [docs/development.md](https://nakago.dev/docs/development).
## License
Licensed under the MIT license ([LICENSE](LICENSE) or ).
## Contribution
See [CONTRIBUTING.md](CONTRIBUTING.md).
## Attribution
Katana image by fordevector at [Vecteezy](https://www.vecteezy.com/free-vector/katana).