Skip to main content

Simple System of Systems Network

Project description

SSSN — Simple System of Systems Network

PyPI version Python License Docs

A minimal Python framework for building composable, distributed AI agent networks.

Two abstractions. One graph.

System ──writes──► Channel ──reads──► System

A Channel is a typed, secured, persistent message store. A System is an autonomous agent that owns channels, wires itself to the network, and runs a tick loop.


Install

pip install sssn

Requires Python 3.10+.


Quick start

import asyncio
from sssn.channels.broadcast import BroadcastChannel
from sssn.core.system import BaseSystem

class Sensor(BaseSystem):
    async def setup(self):
        self.readings = BroadcastChannel(id="readings", name="Readings")
        self.add_channel(self.readings)

    async def step(self):
        await self.write_channel("readings", data={"celsius": 22.4})

class Monitor(BaseSystem):
    async def step(self):
        msgs = await self.read_channel("readings")
        for msg in msgs:
            print(msg.content)

async def main():
    sensor  = Sensor(id="sensor",  name="Sensor")
    monitor = Monitor(id="monitor", name="Monitor")
    await sensor.setup()
    sensor.add_subsystem(monitor, channels=["readings"])
    await asyncio.gather(sensor.launch())

asyncio.run(main())

Channel types

Channel Pattern
BroadcastChannel Fan-out — every consumer sees every message
WorkQueueChannel Competing consumers — each message claimed once
MailboxChannel Per-recipient inbox
PeriodicChannel Active poll loop for external data sources
DiscoveryChannel Service registry with TTL-based expiry
PassthroughChannel Base class — inline write, no loop

Documentation

Full documentation at sssn.one:

  • Concepts — Channel, System, Security, Transport
  • Tutorials — Step-by-step from first channel to secured multi-system network
  • Examples — Data pipeline, request-response, service discovery

Development setup

git clone https://github.com/Productive-Superintelligence/sssn.git
cd sssn
pip install -e ".[dev]"
pytest

Build and preview the docs locally:

pip install -e ".[docs]"
mkdocs serve          # http://127.0.0.1:8000
mkdocs build --strict # production build → site/

Release

# 1. Bump version in pyproject.toml, then:
python -m build
python -m twine upload dist/*

# 2. Tag and push
git tag -a v0.0.1 -m "Release 0.0.1"
git push origin main --tags

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sssn-0.0.1.tar.gz (38.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sssn-0.0.1-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

File details

Details for the file sssn-0.0.1.tar.gz.

File metadata

  • Download URL: sssn-0.0.1.tar.gz
  • Upload date:
  • Size: 38.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sssn-0.0.1.tar.gz
Algorithm Hash digest
SHA256 79e8d1830e57cdec9d3b08f32dbeb7ce261ac657915231f77fe63e8b2ad94a88
MD5 b5fe8e699e6f401266b76cfcef3c631e
BLAKE2b-256 a8fa824f5ae4bbb437fb03a0c97b8f25b97909d86d105beb94cf0b422b344a52

See more details on using hashes here.

File details

Details for the file sssn-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: sssn-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 45.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sssn-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a446dc74907b796c6fb5db6bc66733690540d9c6ec58625badf167d0e08a609
MD5 f72fe055bef74880304b76c54bac2068
BLAKE2b-256 fdad4b9f0646b8f1393e8c4e24a56c2fe6c621572bbfe5992d03993b964feb39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page