| Crates.io | mycelium-cli |
| lib.rs | mycelium-cli |
| version | 8.3.1-beta.2 |
| created_at | 2025-01-27 00:39:52.433352+00 |
| updated_at | 2026-01-17 20:40:20.895094+00 |
| description | Provide CLI ports to the mycelium project. |
| homepage | |
| repository | https://github.com/sgelias/mycelium |
| max_upload_size | |
| id | 1531881 |
| size | 122,433 |
Mycelium is an open and free API Gateway, designed to operate in modern, multi-tenant, and API-oriented environments. The project prioritizes architectural clarity, security, and extensibility, maintaining an explicit separation between technical concerns and organizational aspects of the project.
This repository documents the fundamentals of Mycelium, with special focus on its authorization model, which combines declarative controls at the gateway with contextual decisions close to the resource.
📚 View Complete Documentation →
Access the full documentation website with guides, tutorials, and API reference.
📚 Complete Documentation - Full documentation guide
🚀 Installation Guide - Get started with installation
⚡ Quick Start - Up and running in minutes
⚙️ Configuration - Configure Mycelium
🔐 Authorization Model - Deep dive into security
Mycelium acts as the entry layer for downstream services, being responsible for authentication, identity normalization, routing, and security policy enforcement. The gateway does not impose business logic, but provides authorization primitives that allow each service to evaluate permissions in an explicit, secure, and contextual manner.
The project is maintained as open source software, with its continuity based on governance, community collaboration, and ecosystem funding and acceleration initiatives — aspects that are independent of internal technical decisions.
Mycelium's authorization model is one of its central pillars and is documented in detail in the file:
In summary:

Client
↓
API Gateway (auth, routing, edge RBAC)
↓
Downstream Services (contextual FBAC)
This separation ensures low coupling, high expressiveness, and security decisions close to the resource.
Mycelium is an open and free project. Its maintenance and evolution are handled within the project's organizational scope, through:
These aspects do not influence or condition the technical authorization model, which remains neutral, explicit, and verifiable.
Before installing Mycelium, ensure you have:
For detailed system dependencies and installation instructions, see the Installation Guide.
Install Mycelium using Cargo:
cargo install mycelium-api
Or using Docker:
docker pull sgelias/mycelium-api:latest
For complete installation instructions including database setup and Vault configuration, see the Installation Guide.
Initialize the database:
psql postgres://postgres:postgres@localhost:5432/postgres \
-f postgres/sql/up.sql \
-v db_password='your-password'
Configure Mycelium:
cp settings/config.example.toml settings/config.toml
# Edit config.toml with your settings
Start Mycelium:
SETTINGS_PATH=settings/config.toml myc-api
Verify it's running:
curl http://localhost:8080/health
For a complete quick start guide with minimal configuration, see Quick Start Guide.
Execute the test suite:
# Run all tests
cargo test
# Run with coverage
cargo tarpaulin --out Html
# Run specific tests
cargo test auth
For detailed testing instructions including integration tests and benchmarks, see Running Tests.
📚 Online Documentation - Browse the complete documentation website
Alternatively, you can access documentation files directly in the docs/book/src/ directory:
Mycelium is under active development and open to contributions. Architectural discussions, improvement proposals, and conceptual reviews are welcome.
We welcome contributions! Mycelium is an open-source project and we appreciate:
When you create a PR, GitHub automatically loads our pull request template with sections for summary, testing details, and a comprehensive checklist to ensure code quality and proper documentation.
See the LICENSE file for details about the project's licensing.