Sobre o projeto

Neon é apresentado como uma plataforma de banco de dados Postgres serverless de código aberto. Ele separa armazenamento e computação e substitui a camada de armazenamento do PostgreSQL redistribuindo dados entre um cluster de nós. O guia de início rápido do README sugere usar o Neon Free Tier para criar uma instância Postgres serverless e conectar-se com um cliente Postgres como psql ou dbeaver, ou usar o SQL Editor online. Também observa que o projeto pode ser compilado e executado localmente. Visão geral da arquitetura: uma instalação do Neon consiste em nós de computação e o mecanismo de armazenamento do Neon. Os nós de computação são nós PostgreSQL sem estado apoiados pelo mecanismo de armazenamento. O mecanismo de armazenamento tem dois componentes principais: Pageserver, um backend de armazenamento escalável para nós de computação; e Safekeepers, um serviço WAL redundante que recebe WAL de nós de computação e o armazena de forma durável até que o pageserver o processe e o envie para o armazenamento em nuvem. A documentação do desenvolvedor está em docs/SUMMARY.md. Desenvolvimento local: o README fornece instruções de instalação de dependências para distribuições Linux como Ubuntu ou Debian, Fedora e Arch, e para macOS, incluindo protobuf-compiler 3.15+, Rust, cliente PostgreSQL e ferramentas de construção. A construção cria neon e postgres corrigido, e o repositório usa um arquivo rust-toolchain. Após clonar recursivamente e construir com make, os usuários executam cargo neon init, cargo neon start, cargo neon tenant create --set-default, cargo neon endpoint create main e cargo neon endpoint start main. Exemplos mostram a execução de psql contra o endpoint local e a criação de um branch com cargo neon timeline branch --branch-name migration_check, depois criando e iniciando um endpoint PostgreSQL nesse branch. O README afirma que o branch começa com dados de main, enquanto modificações subsequentes permanecem isoladas. Testes e limpeza: testes de unidade em Rust usam cargo-nextest; testes de integração requerem dependências e são executados via ./scripts/pytest, com opções para selecionar a versão do Postgres e o tipo de construção. Flamegraphs podem ser gerados com flamegraph-rs ou flamegraph.pl. A limpeza usa make clean e make distclean, e remover o diretório .neon exclui o banco de dados local. A documentação inclui docs/sourcetree.md e rustdoc. O README vincula a postagens de blog, um vídeo, um glossário do Neon, um glossário do PostgreSQL, CONTRIBUTING.md e pede aos contribuidores que leiam as diretrizes de estilo de código e o layout da árvore de origem.