Skip to content

High-performance, type-safe Actor model library for Go. Features transparent message passing, remoting, supervision strategies, and built-in scheduler.

License

Notifications You must be signed in to change notification settings

kercylan98/vivid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Reference License: MIT Go Version Go Report Card GitHub release GitHub stars

Vivid 是高性能、类型安全的 Go Actor 模型库,提供完整 Actor 系统、消息传递、远程通信与监督策略,用于构建可扩展、高并发的分布式应用。

注意:项目处于活跃开发阶段,API 可能变更。生产使用前请查看 更新日志

目录

特性

  • 完整 Actor 模型:Actor 系统、上下文、引用,Tell/Ask 与 PipeTo
  • 网络透明投递:通过 ActorRef 统一寻址,本地/远程自动路由
  • 远程通信:内置 Remoting,跨节点 Actor 通信
  • 监督策略:OneForOne/OneForAll,重启、停止、恢复、升级
  • 调度:Once、Loop、Cron 等
  • 行为栈与暂存:Stash/Unstash、行为切换,适合状态机
  • 生命周期与监控:生命周期钩子、Watch/Unwatch、Metrics、事件流
  • 可扩展:自定义邮箱、类型安全消息、错误链

系统要求与安装

  • Go:1.26+
  • 安装
go get github.com/kercylan98/vivid

核心依赖:github.com/google/uuidgithub.com/reugn/go-quartzgolang.org/x/sync(测试含 testify)。

架构概览

Actor 系统

graph TB
    AS[ActorSystem] --> |管理| AC1[Actor 1]
    AS --> |管理| AC2[Actor 2]
    AS --> |管理| AC3[Actor 3]
    AC1 --> |创建子 Actor| AC1_1[Child Actor 1-1]
    AC1 --> |创建子 Actor| AC1_2[Child Actor 1-2]
    AC2 --> |创建子 Actor| AC2_1[Child Actor 2-1]
    AS --> |提供| ES[EventStream]
    AS --> |提供| SC[Scheduler]
    AS --> |提供| MC[Metrics]
    AS --> |可选| RS[Remoting Server]
    RS -.-> |网络通信| RS2[Remote Node]
    RS2 --> |管理| RAC[Remote Actor]
    style AS fill:#e1f5ff
    style RS fill:#fff4e1
    style RS2 fill:#fff4e1
Loading

消息传递

sequenceDiagram
    participant Sender as 发送者 Actor
    participant Mailbox as 邮箱 (Mailbox)
    participant Receiver as 接收者 Actor
    participant Context as ActorContext
    Sender->>Mailbox: Tell/Ask 消息
    Mailbox->>Context: 分发消息
    Context->>Receiver: OnReceive(ctx)
    Receiver->>Context: 处理消息
    Context->>Sender: Reply (可选,Ask 模式)
Loading

应用场景

  • 分布式系统、高并发服务、微服务间通信
  • 状态机、事件驱动、定时/周期/Cron 任务、容错与自动恢复

文档与 Wiki

资源 链接
Wiki https://kercylan98.github.io/vivid/
API 文档 pkg.go.dev
更新日志 Releases

版本兼容性

1.0.0 起遵循 语义化版本:MAJOR 为不兼容变更,MINOR 为兼容新增,PATCH 为兼容修复。1.0.0 之前不保证兼容性。

安全与贡献

  • 安全:请通过 GitHub Security Advisories 报告漏洞;非敏感问题可提 Issue。
  • 贡献:Fork → 特性分支 → 提交(建议 Conventional Commits)→ 发起 PR。请保持测试通过(go test ./...)与代码规范。

许可证与资源

About

High-performance, type-safe Actor model library for Go. Features transparent message passing, remoting, supervision strategies, and built-in scheduler.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages