这个项目能做什么

Electric 是一个开源的 Postgres 同步引擎,被描述为 Postgres 的实时同步工具,定位为构建快速、现代软件和基于实时本地数据运行的 AI 代理的基础。它专注于读取路径:将数据从 Postgres 同步到任意消费者,而不是写回数据库。 该项目解决了常见的同步问题,如部分复制、扇出和数据交付,使开发者无需自行构建同步层。核心同步协议以低级 HTTP API 形式暴露,文档指出该 API 可与 CDN 集成以实现可扩展的数据交付。 部分复制通过 Shapes 配置,Shapes 定义了同步的数据子集。消费者可以直接使用 HTTP API,或通过客户端库和框架集成,包括 TypeScript 客户端和名为 useShape 的 React 钩子。仓库中还包含一个 Elixir 客户端包。 入门需要启用逻辑复制的 Postgres 数据库,然后通过 DATABASE_URL 连接在其前面运行 Electric。README 展示了从仓库根目录使用 Docker Compose 命令启动整个栈,随后通过 curl 请求 /v1/shape 端点开始同步表,以及一个使用 useShape 并带有 table 和 where 参数的简短 React 示例。 HTTP API 在仓库中的 OpenAPI 规范中定义。Electric 还包含一个可选的 Phoenix LiveDashboard,用于实时监控 VM 指标、进程信息和 ETS 表,通过设置环境变量启用仪表板端口。README 明确警告该仪表板端点未认证,在生产环境中必须限制访问。 开发使用 asdf 管理 Elixir、Erlang 和 Node.js 版本,并提供 macOS 的设置说明。仓库包含 Elixir 和 TypeScript 组件的测试套件,前提包括配置了逻辑复制的 Docker Compose Postgres。文档记录了运行 Elixir 同步服务和客户端测试、TypeScript 包测试以及覆盖率报告的命令。该项目采用 Apache 2.0 许可证,并提供社区 Discord 支持。