DaruDB
Uma base de dados embebida que guarda os dados de uma aplicação num único ficheiro local, com um motor escrito em Rust e uma ligação para Node.js por cima. Está numa fase inicial de desenvolvimento e ainda não há nada publicado, pelo que, por agora, é compilada a partir do código-fonte.
Sobre este projeto
O DaruDB é uma base de dados que corre dentro da aplicação e não ao lado dela. Não há servidor para instalar nem para arrancar: um programa abre um ficheiro, lê e escreve objetos nele e fecha-o. É o tipo de armazenamento em que uma aplicação de secretária, uma aplicação móvel ou uma ferramenta de linha de comandos guarda os seus próprios dados. O motor é escrito uma única vez, em Rust, e as outras linguagens chegam a ele através de ligações finas que não acrescentam comportamento próprio, pelo que um ficheiro escrito a partir de Node.js lê-se da mesma forma a partir de Rust.
Os dados são declarados como um esquema de coleções e lidos com consultas construídas em código ou escritas como texto, com índices, ligações entre objetos e migrações de uma versão do esquema para a seguinte. Os resultados são objetos simples, e não identificadores presos à base de dados aberta. Um ficheiro pode ser cifrado e autenticado página a página com uma chave ou uma palavra-passe, vários processos partilham o mesmo ficheiro apenas com os bloqueios de ficheiro do sistema operativo, e uma página confirmada nunca é reescrita no lugar, pelo que uma falha deixa intacto o último estado confirmado. A verificação de integridade, a cópia de segurança a quente, a compactação e o salvamento de um ficheiro danificado vêm com a biblioteca.
O DaruDB está numa fase inicial de desenvolvimento. O crate de Rust e o pacote Node.js são compilados a partir do código-fonte em vez de instalados, o formato de ficheiro pode mudar sem caminho de migração até à primeira versão, e está previsto um pacote Dart. A velocidade, a durabilidade e a cobertura de plataformas são os objetivos à volta dos quais o projeto foi desenhado, e cada um só passa a ser uma afirmação quando o benchmark ou o conjunto de testes que o comprova estiver no repositório. O site de documentação cobre os guias, o motor e a API em inglês e em coreano.
Funcionalidades
Site de documentação
Tipos de TypeScript
Vários idiomas
Verificado por testes
