Skip to content

Alpha 0.0.3 - Open Cardinal - Stateful Update

Choose a tag to compare

@github-actions github-actions released this 19 Feb 23:59
· 24 commits to master since this release

Visão Geral

Nas versões anteriores, o Open Cardinal era stateless (efêmero). Um script Lua avaliava a telemetria atual, tomava uma decisão e "esquecia" tudo no milissegundo seguinte.

A v0.0.3 muda as regras do jogo. O Cardinal agora possui Memória Persistente.
Integramos o Redb (um banco de dados chave-valor puro em Rust, ultra-leve e embutido) diretamente na sandbox do Lua. Agora, suas regras de negócio podem lembrar do passado, permitindo lógicas de governança muito mais complexas, como debouncing, contagem de strikes e janelas de tempo, sem precisar de um Redis externo.

Além disso, introduzimos o Arquivo de Configuração Centralizado, separando as configurações de ambiente do código-fonte.

Novas Funcionalidades

1. Memória Persistente Embutida (Redb)

O Cardinal agora cria automaticamente um banco de dados local. Os scripts Lua ganharam acesso a uma API global (redb_api) para ler e escrever estado que sobrevive a reinicializações do servidor. Zero configuração externa, zero dependências extras.

2. Engine Lua 100% Assíncrona (Non-blocking I/O)

Para garantir que a leitura/escrita no disco não trave o servidor gRPC, toda a engine do Lua foi reescrita para usar a feature async do mlua.
Quando o Lua pede para salvar um dado no Redb, a thread do Tokio é liberada para atender outras requisições gRPC enquanto o disco trabalha. Alta concorrência com latência mínima mantida.

3. Stateful Governance (Governança com Estado)

Agora você pode escrever regras de segurança que dependem de histórico.
Exemplo: em vez de punir um jogador no primeiro erro de física, você pode contar quantas vezes a anomalia ocorreu nos últimos 5 minutos antes de aplicar um BAN.

Leia a Wiki do projeto para aprender a escrever regras e configurar o projeto