{"id":27496172,"url":"https://github.com/zanzythebar/thothnetwork","last_synced_at":"2026-04-27T11:31:54.207Z","repository":{"id":286667267,"uuid":"962146026","full_name":"ZanzyTHEbar/thothnetwork","owner":"ZanzyTHEbar","description":"Highly scalable distributed IoT backend","archived":false,"fork":false,"pushed_at":"2025-04-15T13:35:47.000Z","size":1764,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T14:40:28.499Z","etag":null,"topics":["actor-model","bufbuild","go","golang","iot","libp2p","nats","natsio","protobuf","rpc","thoth"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZanzyTHEbar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-07T18:07:23.000Z","updated_at":"2025-04-15T13:35:51.000Z","dependencies_parsed_at":"2025-04-07T19:40:46.292Z","dependency_job_id":null,"html_url":"https://github.com/ZanzyTHEbar/thothnetwork","commit_stats":null,"previous_names":["zanzythebar/thothnetwork"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZanzyTHEbar%2Fthothnetwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZanzyTHEbar%2Fthothnetwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZanzyTHEbar%2Fthothnetwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZanzyTHEbar%2Fthothnetwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZanzyTHEbar","download_url":"https://codeload.github.com/ZanzyTHEbar/thothnetwork/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249317105,"owners_count":21250089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actor-model","bufbuild","go","golang","iot","libp2p","nats","natsio","protobuf","rpc","thoth"],"created_at":"2025-04-17T04:43:26.053Z","updated_at":"2026-04-27T11:31:54.178Z","avatar_url":"https://github.com/ZanzyTHEbar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- ![Thoth Network Logo](/docs/thothnetwork.png) --\u003e\n\u003cimg src=\"/docs/thothnetwork.png\" alt=\"Thoth Network Logo\" width=\"200\" height=\"200\"\u003e\u003c/img\u003e\n\n# Thoth Network\n\n\u003e [!IMPORTANT]\\\n\u003e This project is currently in active development and is not yet ready for production use.\n\nThoth Network is a highly scalable, real-time IoT backend system built in Golang, designed to manage and process data from millions of IoT devices. It leverages modern networking technologies such as NATs.io and/or libp2p to provide efficient communication. It is optimized for concurrency, extensibility, and performance on Linux systems.\n\nThis system was inspired by ROS2, MQTT, and other IoT platforms, but it is designed to be more efficient, scalable, and future-proof.\n\nI originally intended this system to be the backbone of a highly-decentralized cloud-battery-management-system. However, the project has grown to be a more general-purpose IoT backend system.\n\nI had some fun and used it as a decentralized backbone for multi-agent tasks across the internet. Very neat potentials there.\n\n## Features\n\n- **Device Management**: Register, update, and monitor IoT devices with digital twins and CRUD support\n- **Real-time Streaming**: Process and publish data streams with sub-second latency\n- **Scalable Networking**: Use NATs.io and libp2p for clustering, load balancing, and decentralized communication\n- **Observability**: Includes logging, monitoring, and optional tracing for system insights\n- **Extensibility**: Functions as a library, standalone binary, or containerized service with a CLI and socket interface\n- **Advanced Analytics**: Support for graph-based analytics and integration with big data pipelines and LLMs\n- **Security**: Built-in support for authentication, authorization, and encryption using X.509 certificates \u0026 JWT tokens\n  - Potential future implementation of Zero Trust Network\n\n## Architecture\n\nThoth Network employs a **Hexagonal Architecture** (Ports and Adapters pattern) to ensure modularity and separation of concerns:\n\n- **Core Domain**: Contains the business logic for device management, data processing, and communication\n- **Ports**: Define standardized interfaces for interacting with external systems\n- **Adapters**: Implement the ports for specific technologies or protocols\n\n### Project Structure\n\n- **cmd/**: Contains the main entry points for the application\n  - **cmd/server/**: The server application that runs the Thoth Network backend\n  - **cmd/client/**: Command-line interface for interacting with the Thoth Network server\n- **internal/**: Internal packages not meant for external use\n  - **internal/server/**: The main server implementation\n  - **internal/config/**: Configuration handling\n  - **internal/core/**: Core domain models and business logic\n  - **internal/ports/**: Interface definitions for external systems\n  - **internal/adapters/**: Implementations of the port interfaces\n  - **internal/services/**: Business logic services\n- **pkg/**: Reusable packages that can be used by external applications\n- **api/**: API definitions (Protocol Buffers, OpenAPI, etc.)\n- **docs/**: Documentation\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.24 or later\n- NATS server (for messaging)\n- Linux operating system\n\n\u003e [!NOTE]\\\n\u003e There is no plan to support windows or macosx into the foreseeable future.\n\u003e For a multitude of reasons.\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/ZanzyTHEbar/thothnetwork.git\ncd thothnetwork\n\n# Build the server\ngo build -o thothnetwork-server cmd/server\n\n# Build the CLI\ngo build -o thothnetwork-client cmd/client\n```\n\n### Configuration\n\nCreate a `config.yaml` file:\n\n```yaml\nserver:\n  host: 0.0.0.0\n  port: 8080\n\nnats:\n  url: nats://localhost:4222\n  username: \"\"\n  password: \"\"\n  token: \"\"\n  certificate: \"\"\n  max_reconnects: 10\n  reconnect_wait: 1s\n  timeout: 2s\n\nlogging:\n  level: info\n  format: json\n\nmetrics:\n  enabled: true\n  host: 0.0.0.0\n  port: 9090\n```\n\n### Running the Server\n\n```bash\nthothnetwork-server --config config.yaml\n```\n\n### Using the Client\n\n```bash\n# List devices\nthothnetwork-client device list\n\n# Create a device\nthothnetwork-client device create --name \"Temperature Sensor\" --type \"sensor\" --metadata '{\"location\":\"room-1\"}'\n\n# Get device details\nthothnetwork-client device get device-123\n\n# Update a device\nthothnetwork-client device update device-123 --name \"Updated Sensor\"\n\n# Delete a device\nthothnetwork-client device delete device-123\n```\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanzythebar%2Fthothnetwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzanzythebar%2Fthothnetwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanzythebar%2Fthothnetwork/lists"}