https://github.com/mininglamp-oss/octo-lib
The Go foundation library for the OCTO platform — protocol types, crypto primitives, storage adapters, HTTP framework, event bus, and worker pool.
https://github.com/mininglamp-oss/octo-lib
aes apache-2 crypto curve25519 event-bus go golang grpc http-framework im instant-messaging library mysql octo protobuf redis rsa sqlite worker-pool
Last synced: 9 days ago
JSON representation
The Go foundation library for the OCTO platform — protocol types, crypto primitives, storage adapters, HTTP framework, event bus, and worker pool.
- Host: GitHub
- URL: https://github.com/mininglamp-oss/octo-lib
- Owner: Mininglamp-OSS
- License: apache-2.0
- Created: 2026-05-11T11:28:38.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-05-20T06:32:45.000Z (11 days ago)
- Last Synced: 2026-05-20T10:08:51.790Z (11 days ago)
- Topics: aes, apache-2, crypto, curve25519, event-bus, go, golang, grpc, http-framework, im, instant-messaging, library, mysql, octo, protobuf, redis, rsa, sqlite, worker-pool
- Language: Go
- Homepage: https://github.com/Mininglamp-OSS
- Size: 414 KB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Notice: NOTICE
Awesome Lists containing this project
README
OCTO — the open workplace built for humans × AI agents.
Let Lobsters (OpenClaw-powered digital doubles) do the thinking and doing. You focus on taste.
🏠 OCTO Home ·
🚀 Quickstart ·
📦 Ecosystem ·
🤝 Contributing
---
> 🌐 **Read in**: **English** · [简体中文](README.zh.md)
# OCTO Lib
> The **Go foundation library** that every OCTO backend service builds on — protocol, crypto, storage, HTTP, logging, event bus.
`octo-lib` is the shared Go module at the bottom of the OCTO backend stack. It
contains the protocol types, cryptographic primitives, storage adapters, HTTP
helpers, worker pool, and event-bus code that `octo-server`, `octo-matter`, and
the adapters layer all import rather than re-implement.
## 🌟 Why OCTO Lib
- **One protocol surface.** All OCTO services speak the same message / channel / stream types — defined once, here. No silent drift between services.
- **Batteries included, dependencies minimal.** RSA / AES / DH / SHA crypto, SSRF-safe URL validation, MySQL / Redis / SQLite adapters, a zap-based structured logger, and a Webhook gRPC client are all a single `import` away.
- **Stable, versioned Go module.** Consumed as a regular `go get` dependency; SemVer-tagged; no vendoring required, no magic code generation at build time.
## 🚀 Quickstart
```bash
go get github.com/Mininglamp-OSS/octo-lib
```
Then in your Go code:
```go
import (
"github.com/Mininglamp-OSS/octo-lib/pkg/log"
"github.com/Mininglamp-OSS/octo-lib/pkg/util"
)
func main() {
log.Info("hello octo")
id := util.GenUUID()
log.Info("new id: " + id)
}
```
See [`pkg/`](./pkg) for the full package catalogue.
## 📦 Modules / Architecture
Top-level packages in this module:
| Path | Purpose |
|---|---|
| `common/` | Cache, pagination, message types, constants |
| `config/` | App context, config loader, message / group / channel / stream / RTC configs, ES & tracer init |
| `model/` | Shared data models (channel, response) |
| `module/` | Module registration primitives |
| `server/` | HTTP server bootstrap |
| `testutil/` | Test helpers |
| `pkg/cache/` | In-memory cache |
| `pkg/db/` | MySQL / Redis / SQLite adapters |
| `pkg/keylock/` | Per-key lock |
| `pkg/log/` | Structured logger (zap-based) |
| `pkg/markdown/` | Markdown rendering |
| `pkg/network/` | HTTP client helpers |
| `pkg/pool/` | Worker pool / job dispatcher |
| `pkg/redis/` | Redis client helpers |
| `pkg/register/` | API & task router registration |
| `pkg/util/` | Crypto (AES / RSA / DH / SHA / MD5), base62, decimal, IP, SSRF-safe URL validation, reflection, time, UUID, string / json utils |
| `pkg/wait/` | Wait-group helpers |
| `pkg/wkevent/` | Event bus |
| `pkg/wkhook/` | Webhook gRPC service (proto + generated code) |
| `pkg/wkhttp/` | HTTP handler framework |
| `pkg/wkrsa/` | RSA utilities |
## 🔗 OCTO Ecosystem
```mermaid
graph TD
subgraph Clients[Clients]
Web[octo-web
Web / PC]
Android[octo-android
Android]
iOS[octo-ios
iOS]
end
subgraph Core[Core Services]
Server[octo-server
Backend API]
Matter[octo-matter
Task / Todo]
Summary[octo-smart-summary
AI Summary]
Admin[octo-admin
Admin Console]
end
subgraph Shared[Shared Libraries & Integrations]
Lib[octo-lib
Core Go Library]
Adapters[octo-adapters
Third-party Adapters]
end
Web --> Server
Android --> Server
iOS --> Server
Admin --> Server
Server --> Matter
Server --> Summary
Server --> Adapters
Server -.uses.-> Lib
Matter -.uses.-> Lib
Adapters -.uses.-> Lib
```
| Repository | Language | Role |
|---|---|---|
| [`octo-server`](https://github.com/Mininglamp-OSS/octo-server) | Go | Backend API · business orchestration · Lobster agent scheduling |
| [`octo-matter`](https://github.com/Mininglamp-OSS/octo-matter) | Go | Task / Todo / Matter micro-service |
| [`octo-smart-summary`](https://github.com/Mininglamp-OSS/octo-smart-summary) | Go | LLM-powered conversation summarisation |
| [`octo-web`](https://github.com/Mininglamp-OSS/octo-web) | TypeScript / React | Web & PC (Electron) client |
| [`octo-android`](https://github.com/Mininglamp-OSS/octo-android) | Kotlin / Java | Native Android client |
| [`octo-ios`](https://github.com/Mininglamp-OSS/octo-ios) | Swift / Objective-C | Native iOS client |
| [`octo-admin`](https://github.com/Mininglamp-OSS/octo-admin) | TypeScript / React | Admin console (tenant / org / user / channel management) |
| [`octo-lib`](https://github.com/Mininglamp-OSS/octo-lib) | Go | Shared core library (protocol, crypto, storage, HTTP) |
| [`octo-adapters`](https://github.com/Mininglamp-OSS/octo-adapters) | TypeScript / Python | Third-party integrations (IM bridges, AI channels) |
## 🧭 Philosophy
OCTO ships under three shared principles that apply to every repository in this matrix:
1. **Local-first.** Anything that can run on the user's own box — chats, embeddings, agents — should. Your data stays yours; cloud is a choice, not a requirement.
2. **Humans judge, AI thinks and acts.** Humans focus on *taste* (what matters, what's right, what to ship). Lobster agents — OpenClaw-powered digital doubles — carry the *thinking* and *execution* load.
3. **Release-as-product.** Every open-source cut is shipped as a self-contained product, not a code dump: one squash per release, Apache 2.0, no internal baggage, reproducible from this repo alone.
## 🤝 Contributing
We love pull requests! Before you open one, please read:
- [CONTRIBUTING.md](CONTRIBUTING.md) — workflow, branch model, commit style
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — community expectations
For security issues please follow [SECURITY.md](SECURITY.md) instead of the public tracker.
## 📄 License
Apache License 2.0 — see [LICENSE](LICENSE) for the full text and [NOTICE](NOTICE) for third-party attributions.
## 🙏 Acknowledgments
OCTO is built on the excellent work of the open-source community. We'd like to especially thank:
- **[TangSengDaoDaoServerLib](https://github.com/TangSengDaoDao/TangSengDaoDaoServerLib)** — our upstream project, by the TangSengDaoDao team.
- **[WuKongIM](https://github.com/WuKongIM/WuKongIM)** — the underlying real-time messaging core.
See [NOTICE](NOTICE) for the full attribution list and third-party Go module licenses.
---
Made with 🐙 by OCTO Contributors · Mininglamp-OSS