Memorust

Introdução

O que é o Memorust, por que ele existe e o que ele faz.

O Memorust é um servidor de banco de dados key-value in-memory, leve e de binário único, escrito em Rust (edition 2024), tendo o Tokio como única dependência.

Ele fala o protocolo RESP, então é compatível com o redis-cli e com clientes Redis existentes, e suporta um subconjunto dos comandos do Redis, com TTL e persistência via Append Only File (AOF).

Por que ele existe?

O Memorust nasceu de uma exploração prática de como um banco de dados in-memory funciona por baixo dos panos: rede TCP assíncrona, design de protocolo, concorrência, motores de armazenamento, persistência e engenharia de performance.

O foco é manter o código simples e legível: um núcleo pequeno e bem compreendido, fácil de entender e de estender rumo a uma compatibilidade mais ampla com o Redis ao longo do tempo.

Visão geral das funcionalidades

  • Servidor TCP construído sobre o Tokio
  • Suporte ao protocolo RESP e compatibilidade com o redis-cli
  • Armazenamento key-value in-memory
  • Suporte a TTL com um limpador de expiração em segundo plano
  • Append Only File (AOF) com escritor bufferizado
  • fsync periódico (≈1s, no estilo appendfsync everysec)
  • Replay do AOF na inicialização e rewrite do AOF (compactação)
  • Comandos INFO e FLUSHALL
  • Suporte a múltiplos clientes, com leituras concorrentes sob um lock compartilhado

Licença

O Memorust é licenciado de forma dupla, sob a licença MIT ou a Apache License 2.0, à sua escolha.

Nesta página