SLIM (Secure Low-Latency Interactive Messaging) is a next-generation communication framework that provides the secure, scalable transport layer for AI agent protocols like A2A (Agent-to-Agent) and MCP (Model Context Protocol).
- π Read the full documentation
- π Get Started
- π» Code Examples - Python | Go
- π Integrations - A2A | MCP | OpenTelemetry
- π Deployment Strategies
- π Technical blog posts
SLIM uses a distributed architecture with three main components:
- Data Plane: Pure message routing layer that forwards packets based on hierarchical names without inspecting application content
- Session Layer: Handles reliable delivery, end-to-end MLS encryption, and group membership management
- Control Plane: Manages configuration, monitoring, and orchestration of SLIM routing nodes
This separation enables efficient deployment: SLIM routing nodes run only the lightweight data plane, while applications use language bindings with the full stack (data plane client + session layer + SLIMRPC) for secure, feature-rich communication.
SLIM consists of multiple components with different installation methods:
- SLIM Node (data plane): Docker, Cargo, or Helm
- Control Plane: Docker or Helm
- slimctl CLI: Download from releases
- Language Bindings: Python (pip), Go, C#, JavaScript/TypeScript, Kotlin
π¦ Complete installation instructions
Build all components using Taskfile:
# Build data-plane (Rust)
task data-plane:build PROFILE=release
# Build control-plane (Go)
task control-plane:build
# Run tests
task data-plane:test
task control-plane:testStart a SLIM server node:
# Run with basic configuration
cd data-plane && cargo run --bin slim -- --config ./config/base/server-config.yaml
# Or using Docker
docker run -it \
-v ./data-plane/config/base/server-config.yaml:/config.yaml \
-p 46357:46357 \
ghcr.io/agntcy/slim:latest /slim --config /config.yamlCheck the data-plane README for detailed configuration options including TLS, authentication, and mTLS.
-
data-plane: Rust-powered message routing and client libraries
- SLIM node binary for message forwarding
- Session layer with MLS encryption
- SRPC (SLIM RPC) for request-response patterns
- Language bindings: Python, Go (coming soon)
-
control-plane: Go-based management services
- Configuration management for SLIM nodes
slimctlCLI tool for operations
-
charts: Kubernetes deployment
- slim: Helm chart for data-plane nodes
- slim-control-plane: Helm chart for control-plane services
To build the project and work with the code, you will need the following installed in your system:
Taskfile is required to run all the build operations. Follow the installation instructions in the Taskfile documentations to find the best installation method for your system.
with brew
brew install go-taskwith curl
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/binThe data-plane components are implemented in rust. Install with rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shThe control-plane components are implemented in golang. Follow the installation instructions in the golang website.
- π Documentation
- π IETF Specification
- π¬ Slack Community
- π₯ YouTube Channel
Distributed under Apache 2.0 License. See LICENSE for more information.
Copyright AGNTCY Contributors (https://github.com/agntcy)