[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71286":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":14,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},71286,"electric","electric-sql\u002Felectric","electric-sql","The agent platform built on sync.","https:\u002F\u002Felectric.ax",null,"TypeScript",10225,338,50,248,0,10,30,97.59,"Apache License 2.0",false,"main",[24,25,26,27,28,29,30,31,32,33,34],"agent","agents","crdt","crdts","data","elixir","platform","postgres","replication","runtime","sync","2026-06-12 04:01:00","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Felectric-sql.com\" target=\"_blank\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\"\n          srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Felectric-sql\u002Fmeta\u002Fmain\u002Fidentity\u002FElectricSQL-logo-next.svg\"\n      \u002F>\n      \u003Csource media=\"(prefers-color-scheme: light)\"\n          srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Felectric-sql\u002Fmeta\u002Fmain\u002Fidentity\u002FElectricSQL-logo-black.svg\"\n      \u002F>\n      \u003Cimg alt=\"ElectricSQL logo\"\n          src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Felectric-sql\u002Fmeta\u002Fmain\u002Fidentity\u002FElectricSQL-logo-black.svg\"\n      \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Factions\u002Fworkflows\u002Felixir_tests.yml\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache_2.0-green\" alt=\"License - Apache 2.0\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Felectric-sql.com\u002Fblog\u002F2025\u002F03\u002F17\u002Felectricsql-1.0-released\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-1.0-green\" alt=\"Status - Beta\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.electric-sql.com\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F933657521581858818?color=5969EA&label=discord\" alt=\"Chat - Discord\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FElectricSQL\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002FElectricSQL.svg?style=social&label=Follow @ElectricSQL\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n# Electric \u003C!-- omit in toc -->\n\nReal-time sync for Postgres.\n\n**Table of Contents:**\n\n- [Quick links](#quick-links)\n- [What is Electric?](#what-is-electric)\n- [Getting Started](#getting-started)\n- [HTTP API Docs](#http-api-docs)\n- [Phoenix LiveDashboard](#phoenix-livedashboard)\n- [Developing Electric](#developing-electric)\n  - [Mac setup](#mac-setup)\n- [Contributing](#contributing)\n- [Support](#support)\n\n## Quick links\n\n- [Quickstart](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fquickstart)\n- [Website](https:\u002F\u002Felectric-sql.com)\n- [About](https:\u002F\u002Felectric-sql.com\u002Fabout)\n- [Docs](https:\u002F\u002Felectric-sql.com\u002Fdocs)\n- [Demos](https:\u002F\u002Felectric-sql.com\u002Fdemos) (also see the [`.\u002Fexamples` folder](.\u002Fexamples))\n\n## What is Electric?\n\nSync is the magic ingredient behind fast, modern software. From apps like Figma and Linear to AI agents running on live local data.\n\nElectric is a Postgres sync engine. It solves the hard problems of sync for you, including partial replication, fan-out, and data delivery. So you can build awesome software, without rolling your own sync.\n\nSpecifically, Electric is a read-path sync engine for Postgres. It syncs data out of Postgres into ... anything you like. The core sync protocol is based on a low-level [HTTP API](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fapi\u002Fhttp). This integrates with CDNs for highly-scalable data delivery.\n\nPartial replication is managed using [Shapes](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fguides\u002Fshapes). Sync can be consumed directly or via [client libraries](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fapi\u002Fclients\u002Ftypescript) and [framework integrations](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fapi\u002Fintegrations\u002Freact).\n\n## Getting Started\n\nSee the [Quickstart guide](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fquickstart) to get up and running. In short, you need to:\n\n1. have a Postgres database with logical replication enabled; and then to\n2. run Electric in front of it, connected via `DATABASE_URL`\n\nFor example, using [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F) from the root of this repo:\n\n```sh\ndocker compose -f .support\u002Fdocker-compose.yml up\n```\n\nYou can then use the [HTTP API](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fapi\u002Fhttp) to sync data from your Postgres. For example, to start syncing the whole `foo` table:\n\n```sh\ncurl -i 'http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fshape?table=foo&offset=-1'\n```\n\nOr use one of the clients or integrations, such as the [`useShape`](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fapi\u002Fintegrations\u002Freact) React hook:\n\n```jsx\nimport { useShape } from '@electric-sql\u002Freact'\n\nfunction Component() {\n  const { data } = useShape({\n    url: `http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fshape`,\n    params: {\n      table: `foo`,\n      where: `title LIKE 'foo%'`,\n    },\n  })\n\n  return JSON.stringify(data)\n}\n```\n\nAgain, see the [Quickstart](https:\u002F\u002Felectric-sql.com\u002Fdocs\u002Fquickstart) and the [Docs](https:\u002F\u002Felectric-sql.com) for more details.\n\n## HTTP API Docs\n\nThe HTTP API is defined in an [OpenAPI spec](https:\u002F\u002Fswagger.io\u002Fspecification\u002F) in [website\u002Felectric-api.yaml](.\u002Fwebsite\u002Felectric-api.yaml).\n\n## Phoenix LiveDashboard\n\nElectric includes an optional [Phoenix LiveDashboard](https:\u002F\u002Fgithub.com\u002Fphoenixframework\u002Fphoenix_live_dashboard) for real-time monitoring of the running system (VM metrics, process info, ETS tables, etc.).\n\nTo enable it, set the `ELECTRIC_LIVE_DASHBOARD_PORT` environment variable:\n\n```sh\nELECTRIC_LIVE_DASHBOARD_PORT=4000\n```\n\nThe dashboard will be available at `http:\u002F\u002Flocalhost:4000` (or whichever port you choose). When the variable is not set, the dashboard is not started.\n\n> **WARNING: The LiveDashboard endpoint is completely unauthenticated.** Anyone with network access to the port can view internal system state. In production, you **must** restrict access to this port using firewall rules, network policies, or similar controls. Do not expose it to the public internet.\n\n## Developing Electric\n\nWe use [asdf](https:\u002F\u002Fasdf-vm.com\u002F) to install Elixir, Erlang, and Node.js. Versions are defined in [.tool-versions](.tool-versions).\n\n### Mac setup\n\n```sh\nbrew install asdf\nasdf plugin add nodejs\nasdf plugin add pnpm\nasdf plugin add elixir\nasdf plugin add erlang\nasdf install\n```\n\nYou'll probably need to fiddle with your bash\u002Fzsh\u002Fetc rc file to load the right tool into your environment.\n\n### Running Tests\n\nElectric has comprehensive test suites for both Elixir and TypeScript components.\n\n#### Prerequisites\n\nInstall dependencies (if not already done):\n\n```sh\nasdf install\npnpm install\n```\n\nThen start the test Postgres database:\n\n```sh\ncd packages\u002Fsync-service\nmix start_dev\n```\n\nThis starts a Docker Compose setup with Postgres configured for logical replication on port 54321.\n\nTo stop the database:\n\n```sh\nmix stop_dev\n```\n\n#### Elixir Tests\n\n**Sync Service:**\n\n```sh\ncd packages\u002Fsync-service\nmix test\n```\n\nFor coverage reports:\n\n```sh\nmix coveralls.html\n```\n\n**Elixir Client:**\n\n```sh\ncd packages\u002Felixir-client\nmix test\n```\n\n#### TypeScript Tests\n\nTypeScript tests require both the database and a running sync service.\n\nIn a separate terminal, start the sync service:\n\n```sh\ncd packages\u002Fsync-service\niex -S mix\n```\n\nThen run the tests:\n\n**Individual Package:**\n\n```sh\ncd packages\u002Ftypescript-client  # or any other TS package\npnpm test\n```\n\n**All TypeScript Packages:**\n\nFrom the root directory:\n\n```sh\npnpm -r test\n```\n\nFor coverage:\n\n```sh\npnpm coverage\n```\n\n## Contributing\n\nSee the:\n\n- [Guide to Contributing](https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)\n- [Contributor License Agreement](https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Fblob\u002Fmain\u002FCLA.md)\n- [Community Guidelines](https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Felectric\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md)\n\n## Support\n\nWe have an [open community Discord](https:\u002F\u002Fdiscord.electric-sql.com). Come and say hello and let us know if you have any questions or need any help getting things running.\n\nIt's also super helpful if you leave the project a star here at the [top of the page☝️](#start-of-content)\n","Electric 是一个基于同步技术的 Postgres 数据同步引擎。它能够解决数据部分复制、分发和传输等复杂问题，通过低级别的 HTTP API 实现与 CDN 的集成，从而支持高度可扩展的数据交付。Electric 支持使用 Shapes 来管理部分复制，并且提供了多种客户端库（如 TypeScript）来简化应用开发。适用于需要实时数据同步的应用场景，比如协作工具、在线编辑器或依赖于即时数据更新的 AI 代理等，帮助开发者构建高效且响应迅速的应用程序。",2,"2026-06-11 03:36:59","high_star"]