A lightweight, fast, and secure application written in Rust with clean architecture.
Manta demonstrates modern Rust development practices with a layered architecture:
- Clean Architecture: Core domain logic independent of external frameworks
- Layered Design: Clear separation between core, adapters, and interfaces
- Async/Await: Modern async Rust patterns
- Error Handling: Structured error types with context
- Configuration: Multi-source configuration (files, environment)
- Observability: Structured logging with tracing
- CLI: Comprehensive command-line interface
# Build
cargo build --release
# Configure (optional)
# Manta works out of the box with defaults
# Run CLI
./target/release/manta --help
# Start server
./target/release/manta server
# Create and manage entities
./target/release/manta entity create "My Entity"
./target/release/manta entity listManta follows clean architecture principles:
manta/
├── src/
│ ├── core/ # Domain logic (independent)
│ │ ├── models.rs # Domain models (Entity, Status, etc.)
│ │ └── engine.rs # Business logic
│ ├── adapters/ # External integrations
│ │ ├── storage.rs # Storage implementations
│ │ └── api.rs # HTTP client with retry logic
│ ├── config.rs # Configuration management
│ ├── cli.rs # Command-line interface
│ ├── error.rs # Error types
│ └── utils/ # Utilities
│ └── logging.rs # Logging setup
├── tests/ # Integration tests
└── CLAUDE.md # Development guide
- ✅ Clean architecture with separation of concerns
- ✅ Entity management (create, read, update, delete)
- ✅ Configuration system (file, env, CLI)
- ✅ Structured logging with tracing
- ✅ CLI with subcommands
- ✅ In-memory and file-based storage
- ✅ HTTP client with retry logic
- ✅ Comprehensive error handling
- ✅ Unit and integration tests
- Multiple LLM Providers (OpenAI, Anthropic, Local)
- Multi-Channel support (Telegram, Discord, CLI)
- Tool system for autonomous operations
- Memory management
See plan.md for detailed architecture and roadmap.
Manta can be configured via:
- Configuration file:
manta.tomlor~/.manta/manta.toml - Environment variables:
MANTA_SERVER_HOST,MANTA_LOG_LEVEL, etc. - Command-line flags:
--config,--log-level
[server]
host = "127.0.0.1"
port = 8080
[logging]
level = "info"
format = "compact" # Options: compact, pretty, json
[storage]
type = "memory" # Options: memory, file- Rust 1.75 or later
- Cargo
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Run with logging
cargo run -- --log-level debug server# Format code
cargo fmt
# Run linter
cargo clippy -- -D warnings
# Generate documentation
cargo doc --no-depsSee CLAUDE.md for Rust best practices and development guidelines.
MIT OR Apache-2.0