这个项目能做什么

Neon 被介绍为一个开源的无服务器 Postgres 数据库平台。它将存储与计算分离,并用分布式数据集群替代了 PostgreSQL 的存储层。 README 中的快速入门建议使用 Neon 免费层级创建一个无服务器 Postgres 实例,并可通过 psql 或 DBeaver 等 Postgres 客户端连接,或使用在线 SQL 编辑器。同时指出该项目可以本地编译并运行。 架构概览:一个 Neon 安装由计算节点和 Neon 存储引擎组成。计算节点是无状态的 PostgreSQL 节点,由存储引擎支持。存储引擎包含两个主要组件:Pageserver,用于计算节点的可扩展存储后端;Safekeepers,一种冗余的 WAL 服务,从计算节点接收 WAL 并持久化存储,直到 pageserver 处理并将数据上传到云存储。开发者文档位于 docs/SUMMARY.md。 本地开发:README 提供了针对 Ubuntu、Debian、Fedora 和 Arch 等 Linux 发行版以及 macOS 的依赖安装说明,包括 protobuf-compiler 3.15+、Rust、PostgreSQL 客户端和构建工具。构建过程会生成 neon 和修补后的 postgres,仓库使用 rust-toolchain 文件。克隆递归并使用 make 构建后,用户需执行 cargo neon init、cargo neon start、cargo neon tenant create --set-default、cargo neon endpoint create main 和 cargo neon endpoint start main。示例展示了如何对本地端点运行 psql,并使用 cargo neon timeline branch --branch-name migration_check 创建分支,然后在该分支上创建并启动 PostgreSQL 端点。README 指出,该分支初始数据来自 main,后续修改保持隔离。 测试与清理:Rust 单元测试使用 cargo-nextest;集成测试需要依赖项并通过 ./scripts/pytest 运行,可选择 Postgres 版本和构建类型。火焰图可用 flamegraph-rs 或 flamegraph.pl 生成。清理操作包括使用 make clean 和 make distclean,删除 .neon 目录可清除本地数据库。文档包括 docs/sourcetree.md 和 rustdoc。README 链接至博客文章、视频、Neon 术语表、PostgreSQL 术语表、CONTRIBUTING.md,并要求贡献者阅读代码风格和源码树结构文档。