Skip to content

agntcy/slim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

726 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Data-plane CI Control-plane CI codecov Coverage

SLIM

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).

Architecture

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.

Quick Start

Installation

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

Building from Source

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:test

Running SLIM

Start 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.yaml

Check the data-plane README for detailed configuration options including TLS, authentication, and mTLS.

Repo Structure

  • 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
    • slimctl CLI tool for operations
  • charts: Kubernetes deployment

Prerequisites

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-task
with curl
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin

The data-plane components are implemented in rust. Install with rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

The control-plane components are implemented in golang. Follow the installation instructions in the golang website.

Community & Resources

License

Copyright Notice and License

Distributed under Apache 2.0 License. See LICENSE for more information.

Copyright AGNTCY Contributors (https://github.com/agntcy)

About

Secure Low-Latency Interactive Messaging

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 23