Repolode
neondatabase

neondatabase/neon

开源的无服务器 Postgres,存算分离,支持自动伸缩、数据库分支和缩容至零。

可替代:Amazon Aurora

Star
23,248
Fork
1,123
未关闭 Issue
577
最近提交
2个月前

这是什么?

Neon 是一个无服务器的 Postgres 数据库平台,将存储与计算分离。计算节点是无状态的 PostgreSQL 实例,数据则由由 pageserver 和 safekeeper 组成的存储引擎保存。safekeeper 构成冗余的 WAL 服务,持久保存预写日志,直到 pageserver 处理完成并上传到云存储。

这种架构使数据库可以像代码分支一样从另一个库派生出来,分支上的修改与父库相互隔离;计算资源也可以按需启停。项目提供本地控制面工具 cargo neon,可初始化 pageserver、safekeeper 和 broker,并创建租户、时间线与端点,支持 Postgres 14 及以上版本。

代码库主要使用 Rust 编写,并包含一个打过补丁的 PostgreSQL 分支。单元测试使用 cargo-nextest,集成测试使用 pytest。

核心功能

  • 01存算分离,计算节点为无状态的 PostgreSQL 实例。
  • 02支持类似代码分支的数据库分支,分支与父库相互隔离。
  • 03支持计算资源自动伸缩并缩容至零。
  • 04通过冗余的 safekeeper WAL 服务保障写入持久性,并将数据上传至云存储。
  • 05提供本地控制面工具 cargo neon,可在开发机上运行完整环境。

适用场景

  • 为数据库创建隔离的分支副本,用于测试结构迁移。
  • 运行长时间空闲、需要缩容至零的 Postgres 工作负载。
  • 在本地机器上开发和测试 Neon 存储引擎的代码改动。

快速上手

  1. 1

    注册 Neon 免费套餐,获取托管的无服务器 Postgres 实例

  2. 2

    克隆仓库及其子模块

    git clone --recursive https://github.com/neondatabase/neon.git
  3. 3

    在 neon 目录中构建 Neon 和打过补丁的 Postgres

    make -j`nproc` -s

使用前须知

  • 本地运行需要安装大量系统软件包、Rust 以及 3.15 或更高版本的 protoc。
  • README 仅提供 Linux 和 macOS 的本地安装说明,其中 macOS 部分针对 macOS 12.3.1 编写。
  • 本地环境适用于小型实验和测试代码修改,并不面向生产负载。

收录于专题

标签

常见问题

neon 是什么?
开源的无服务器 Postgres,存算分离,支持自动伸缩、数据库分支和缩容至零。 Neon 是一个无服务器的 Postgres 数据库平台,将存储与计算分离。计算节点是无状态的 PostgreSQL 实例,数据则由由 pageserver 和 safekeeper 组成的存储引擎保存。safekeeper 构成冗余的 WAL 服务,持久保存预写日志,直到 pageserver 处理完成并上传到云存储。
neon 可以免费使用吗?用的什么许可证?
neon 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
neon 还在维护吗?
半年内有更新。neon 最近一次提交是在 2026年8月31日。
neon 适合用来做什么?
为数据库创建隔离的分支副本,用于测试结构迁移。 运行长时间空闲、需要缩容至零的 Postgres 工作负载。 在本地机器上开发和测试 Neon 存储引擎的代码改动。
neon 怎么安装和运行?
注册 Neon 免费套餐,获取托管的无服务器 Postgres 实例 克隆仓库及其子模块: git clone --recursive https://github.com/neondatabase/neon.git 在 neon 目录中构建 Neon 和打过补丁的 Postgres: make -j`nproc` -s
在哪里获取 neon?
源代码和安装说明在 GitHub 上:https://github.com/neondatabase/neon

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目