[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75971":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":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},75971,"pgGraph","Evokoa\u002FpgGraph","Evokoa","Open-source graph database superpowers for your existing Postgres data.","https:\u002F\u002Fwww.evokoa.com",null,"Rust",398,32,6,3,0,23,171,7,4.56,"Other",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36],"ai","ai-agents","ai-agents-framework","graph","graph-database","pgrx","postgres","postgresql-database","postgresql-extension","relationship-graph","rust","traversal","2026-06-12 02:03:38","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fpggraph-banner.png\" alt=\"pgGraph Banner\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">pgGraph    \u003Ca href=\"https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-pgGraph-0ea5e9?style=flat-square\" alt=\"pgGraph documentation\">\n  \u003C\u002Fa>\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Graph database superpowers for your existing Postgres data.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph\u002Fstargazers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fevokoa\u002Fpggraph?style=flat-square&logo=github&label=stars\" alt=\"GitHub stars\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.1.0-2ea44f?style=flat-square\" alt=\"Version 0.1.0\">\n  \u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue?style=flat-square\" alt=\"License: Apache-2.0\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.postgresql.org\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPostgreSQL-13--18-336791?style=flat-square&logo=postgresql&logoColor=white\" alt=\"PostgreSQL 13-18\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fevokoa\u002Fpggraph?style=flat-square&logo=github&label=issues\" alt=\"GitHub issues\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph\u002Fpulls\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002Fevokoa\u002Fpggraph?style=flat-square&logo=github&label=PRs\" alt=\"GitHub pull requests\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph\u002Fcommits\u002Fmain\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fevokoa\u002Fpggraph?style=flat-square&logo=github&label=last%20commit\" alt=\"Last commit\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fevokoa.com\" target=\"_blank\" rel=\"noreferrer\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt%20by-Evokoa-ff6b35?style=for-the-badge\"\n    alt=\"Built by Evokoa\"\n  >\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fevokoa_ai\" target=\"_blank\" rel=\"noreferrer\">\n    \u003Cimg\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20X-000000?style=for-the-badge&logo=x&logoColor=white\"\n      alt=\"Follow on X\"\n    >\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FGnHR8ezuwG\" target=\"_blank\" rel=\"noreferrer\">\n    \u003Cimg\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1496159762704896022?style=for-the-badge&label=Join%20Discord&logo=discord&logoColor=white&color=5865F2\"\n      alt=\"Join the Evokoa Discord\"\n    >\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002F@evokoa\" target=\"_blank\" rel=\"noreferrer\">\n    \u003Cimg\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFollow%20on%20Product%20Hunt-DA552E?style=for-the-badge&logo=product-hunt&logoColor=white\"\n      alt=\"Follow on Product Hunt\"\n    >\n  \u003C\u002Fa>\n\u003C\u002Fp>\npgGraph is a PostgreSQL extension for running graph search, traversal, shortest\npath, and relationship queries directly against ordinary PostgreSQL tables.\n\nYour tables stay the source of truth. pgGraph builds a derived graph index and\nlets you query it from SQL using functions in the `graph` schema.\n\n> [!IMPORTANT]\n> pgGraph is in early alpha. Even though we have tested it to be stable,\n> please avoid production use for now; try it in\n> Docker or a dedicated development database and share feedback to help the\n> project grow.\n\n## Why pgGraph?\n\nPostgreSQL is great at relational queries, but graph-style questions often\nrequire custom recursive SQL for each schema:\n\n- “Find records related to Alice within 2 hops.”\n- “Find the shortest path between this person and this company.”\n- “Search nodes across registered tables.”\n\npgGraph adds graph queries on top of your existing PostgreSQL tables, without\nrequiring a separate graph database, graph-specific storage system, or a new\nquery language.\n\n## Quickstart\n\nThe fastest way to try pgGraph is the included quickstart script.\n\nIt starts a disposable Docker-backed PostgreSQL database, installs pgGraph,\ncreates two normal PostgreSQL tables, discovers the foreign key relationship,\nbuilds the graph, and runs example queries.\n\nYou need Docker or Docker Desktop installed and running:\n\n- macOS: install Docker Desktop.\n- Windows: install Docker Desktop with WSL2 enabled, then run the script from\n  WSL2 or Git Bash.\n- Linux: install Docker Engine and the Docker Compose plugin.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fevokoa\u002Fpggraph.git\ncd pggraph\n\n# run the full quickstart demo\nscripts\u002Fquickstart.sh\n\n# install into existing Postgres Docker container\nscripts\u002Fquickstart.sh docker my-postgres 17 appdb postgres\n\n# source build\u002Finstall with pgrx into local PostgreSQL\nscripts\u002Fquickstart.sh pgrx\n\n# start Streamlit playground with a preset dataset (panama|ldbc)\nscripts\u002Fquickstart.sh playground panama \n```\n\nThe script works on macOS and Linux from a normal terminal, and on Windows from\nWSL2 or Git Bash with Docker Desktop. It is not a native PowerShell or Command\nPrompt script.\n\nThe root Docker image currently runs PostgreSQL 17. Package scripts can build\nextension artifacts for PostgreSQL 13 through 18. The PostgreSQL major version\nof the extension package must match the target server.\n\n## Documentation\nMore information is available in the pgGraph docs:\n\n**[Overview](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide)** ·\n**[Quickstart](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fquickstart)** ·\n**[Installation](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide\u002Finstallation)** ·\n**[Playground](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide\u002Fplayground)** ·\n**[Querying](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide\u002Fquerying)** ·\n**[SQL API](https:\u002F\u002Fdocs.evokoa.com\u002Fpggraph\u002Fuser_guide\u002Fapi-reference)**\n\n## pgGraph: High-Speed Graph Execution Inside PostgreSQL\n\npgGraph is not \"Postgres plus graph syntax.\" It is a blazing-fast,\ncache-friendly graph execution layer for data that already lives in your\nordinary relational tables.\n\nThe core idea is simple but powerful: keep PostgreSQL as your system of record,\nbut build a highly optimized, read-heavy graph runtime from that relational\nmetadata. The result is closer to a graph index than a graph database, built\nfrom Postgres tables, operated with Postgres controls, but traversing\nrelationships at memory speed.\n\n### The Tech: Why It's So Fast\n\nGraph traversals usually die on recursive SQL queries or endless joins. pgGraph\nbypasses this by compiling your relational data into a specialized memory\nstructure.\n\n- **O(1) adjacency via CSR.** `graph.build()` compiles your relationships into\n  forward and reverse compressed sparse row (CSR) edge stores. A node's\n  neighbors are stored as a contiguous array slice. Instead of rediscovering\n  relationships via SQL, traversals are executed as raw, graph-native memory\n  scans.\n- **A blazing-fast hot loop.** SQL-facing calls resolve coordinates, labels,\n  filters, and tenant scopes before entering the traversal loop. Once inside,\n  the engine streams CSR neighbors, checking compact `u8` edge-label IDs,\n  typed `FilterIndex` values, tenant bitmaps, active bits, and sync overlays.\n- **The OS is the cache (`mmap`).** We do not use a slow, shared Rust heap.\n  Persisted `.pggraph` artifacts are written atomically. When a new Postgres\n  backend spins up, it validates and mmaps the forward graph arrays and\n  resolution index. The graph cache is powered by the OS page cache, letting\n  isolated PostgreSQL backends start quickly without copying the base graph into\n  a shared extension heap.\n- **Predictable and safe.** Unbounded graph expansion can crash a database.\n  pgGraph includes explicit circuit breakers: depth limits, visited-node\n  tracking, frontier limits, pagination, and strict OOM\u002Fmemory safeguards.\n\n### PostgreSQL Remains Authoritative\n\nYour application data does not move. Source tables, constraints, indexes, ACLs,\nRLS, backups, and app writes remain 100% standard PostgreSQL concerns.\n\npgGraph is strictly derived state. You run the algorithms over internal node\nindexes, and the engine returns source table coordinates or hydrates the raw\nPostgreSQL rows on the fly. Build, sync, vacuum, and maintenance operations are\nfully visible and SQL-callable.\n\n### How pgGraph Compares\n\n#### vs. Apache AGE: Execution Layer vs. Storage Layer\n\nApache AGE is a property graph database inside Postgres. It uses graph\nnamespaces, vertex and edge tables, `agtype`, and openCypher.\n\npgGraph does not ask you to move your data or learn Cypher. You keep your\nexisting schema and accelerate it with SQL functions like `graph.search()` and\n`graph.shortest_path()`. Use AGE for a dedicated property graph model; use\npgGraph to add bounded, high-speed graph traversal to an existing relational\nschema.\n\n#### vs. PostgreSQL 19 SQL\u002FPGQ: Runtime Engine vs. Language Syntax\n\nSQL:2023 and PostgreSQL 19 introduce `CREATE PROPERTY GRAPH`, `GRAPH_TABLE`,\nand standard graph syntax. This is a language interoperability layer that\nrewrites graph pattern queries into ordinary relational queries.\n\npgGraph is an execution layer. It precomputes graph-native CSR stores and\nmemory-mapped artifacts to fundamentally change how the query executes. They\nare complementary: future adapters could map PostgreSQL 19 syntax directly onto\npgGraph's runtime.\n\n## Community\n\npgGraph is built by [Evokoa](https:\u002F\u002Fevokoa.com). \nFollow the project through\nthe links at the top of this README.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","pgGraph 是一个为现有 PostgreSQL 数据提供图数据库功能的开源扩展。它允许用户直接对普通 PostgreSQL 表执行图搜索、遍历、最短路径和关系查询，而无需将数据迁移到专用的图数据库中。该项目采用 Rust 语言编写，通过构建派生图索引来加速查询过程，并支持在 SQL 中进行图操作。适合于需要在已有 PostgreSQL 数据基础上快速引入复杂图分析能力的应用场景，如社交网络分析、推荐系统或任何涉及实体间复杂关系的数据处理任务。",2,"2026-06-11 03:54:05","CREATED_QUERY"]