Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
turbolite — SQLite VFS com consultas JOIN a frio em menos de 100ms a partir do S3 + compressão e criptografia em nível de página | Kitploit
Ferramentas/GitHubGitHub/russellromney/turbolite
Ferramentas de Criptografia/DescriptografiaCriptografiaSegurança na NuvemUtilitários e FrameworksSegurança de Banco de Dados
GitHubrussellromney/turbolite

turbolite

SQLite VFS com consultas JOIN a frio em menos de 100ms a partir do S3 + compressão e criptografia em nível de página

Ver Repositório
4801211há 3 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

turbolite

turbolite é um VFS SQLite em Rust que atende buscas pontuais e joins diretamente do S3 com latência a frio inferior a 250 ms.

Este repositório é um workspace Cargo com dois crates:

  • turbolite — Biblioteca puramente Rust. VFS SQLite com compressão em nível de página, criptografia e tiering para S3.
  • turbolite-ffi — FFI C / extensão carregável + bindings para linguagens (Python, Node.js, Go).

Também oferece compressão em nível de página (zstd) e criptografia (AES-256) para eficiência e segurança em repouso, que podem ser usados separadamente do S3.

Experimental. turbolite está em desenvolvimento ativo e contém bugs. Tenha cuidado.

O armazenamento de objetos está ficando rápido. S3 Express One Zone oferece GETs com latência de dígitos únicos em milissegundos e Tigris também é extremamente rápido. A distância entre disco local e armazenamento em nuvem está diminuindo, e turbolite explora isso.

O design e o nome são inspirados na abordagem do turbopuffer de arquitetar impiedosamente em torno das restrições do armazenamento em nuvem. O objetivo inicial do projeto era superar as inicializações a frio de mais de 500 ms do Neon. Objetivo alcançado.

Se você tem um banco de dados por servidor, use um volume. turbolite explora como ter centenas ou milhares de bancos de dados (um por inquilino, um por workspace, um por dispositivo), não quer um volume para cada um e está de acordo com uma única fonte de gravação.

turbolite é distribuído como uma biblioteca Rust, uma extensão carregável SQLite (.so/.dylib) e pacotes de linguagem para Python e Node.js, além de dependências Github para Go. Qualquer armazenamento compatível com S3 funciona (AWS S3, Tigris, R2, MinIO, etc.). É um VFS SQLite padrão operando no nível de página, então a maioria dos recursos do SQLite deve funcionar: FTS, R-tree, JSON, modo WAL, etc.

turbolite faz parte do ecossistema mais amplo do hadb. O turbolite autônomo é um VFS de armazenamento com um único writer seguro; se você quiser eleição de líder HA mais replicação contínua de WAL, use através do haqlite-turbolite, que adiciona HaQLite e walrust por cima. Esse caminho HA ainda é muito experimental.

Se você quiser contribuir com o turbolite ou encontrar bugs, crie um pull request ou abra uma issue.

Desempenho

ConsultaTipoFrio (S3 Express)Frio (Tigris)
Post + usuáriobusca pontual + join86ms172ms
Perfiljoin multi-tabela (5 JOINs)251ms479ms
Quem curtiubusca em índice + join206ms302ms
Amigos mútuosjoin multi-busca19ms49ms
Filtro indexadovarredura de índice coberto79ms88ms
Escaneamento completo + filtrovarredura completa de tabela476ms532ms

1M posts / 100K usuários (~1.5GB armazenados) sem nada em cache, cada byte vindo do S3. EC2 c5.2xlarge + S3 Express One Zone (mesma AZ, ~4ms latência GET). Fly performance-8x + Tigris (~25ms latência GET). Ambos: 8 vCPU dedicados, 16GB RAM, 7 threads de worker de pré-busca. Veja Benchmarking e Backend de armazenamento importa.

Os benchmarks são organizados por nível de cache (o que já está no disco local quando a consulta é executada):

Nível de cacheO que está em cacheO que é buscado do S3Quando isso ocorre
nenhumnadatudoInício limpo, cache vazio
interiorpáginas B-tree interiorespáginas de índice + dadosPrimeira consulta após abrir conexão
índicepáginas interiores + de índiceapenas páginas de dadosOperação normal do turbolite
dadostudonadaEquivalente a SQLite local

interior é o benchmark a frio mais realista: páginas interiores são carregadas ansiosamente na abertura da conexão, então, quando você executa sua primeira consulta, elas já estão em cache. Páginas de índice são pré-buscadas agressivamente no primeiro acesso em segundo plano e podem não estar prontas ainda.

Cache quente (sobrecarga do VFS vs SQLite puro)

100K linhas, Fly.io performance-2x (vCPU dedicado, NVMe, IAD):

OperaçãoSQLiteturboliteSobrecarga
Busca pontual145K/s73K/s2.0x
Varredura de intervalo8.8K/s8.3K/sparidade
Varredura completa de tabela56/s60/sparidade
INSERIR19K/s23K/sparidade
ATUALIZAR por PK40K/s27K/s1.5x
INSERIR em lote (em transação)685K/s740K/sparidade

Buscas pontuais têm a maior sobrecarga por página (~2x). Todo o resto se aproxima ou supera a paridade. A arquitetura de cache livre de bloqueio significa que leituras concorrentes nunca bloqueiam gravações.

Custo de checkpoint

ApósLocalS3 (RustFS mesma região)
1K inserções19ms38ms
10K em lote17ms114ms
1K atualizações9ms36ms

Gravações são sempre na velocidade local. O custo S3 é apenas no checkpoint. Números com RustFS na mesma região Fly (~2ms RTT). S3 Express One Zone seria comparável.

Início Rápido

Python```bash

pip install turbolite

". So the input is just an empty string? Possibly the chunk is just a blank line. According to the rules, I should return only the translated text. If the input is empty, the output should be empty. But that might break the concatenation. However, the user specifically said "Translate ONLY the exact text provided". So I'll output nothing.

But to be safe, I'll check if there is any content after "INPUT:" in the message. The message ends with "INPUT:\n\n". So there are two newlines after "INPUT:", meaning the input is an empty line. I'll treat it as an empty input and return nothing.

I must not add any commentary. So my response should be empty.```python
import turbolite

conn = turbolite.connect("my.db", mode="s3",
    bucket="my-bucket",
    endpoint="https://t3.storage.dev")

conn.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)")
conn.execute("INSERT INTO users VALUES (1, 'alice', '[email protected]')")
conn.commit()

alice = conn.cursor().execute("SELECT * FROM users").fetchone()
print(alice[1])
>>> "alice"

Veja Instalação para Node, Go, Rust, modo apenas local e usando a extensão carregável .so diretamente

Design

turbolite é projetado para as restrições do S3 em vez das restrições do sistema de arquivos. Cada decisão decorre deste modelo:

Restrição do S3Implicação
Viagens de ida e volta são lentasMinimize o número de requisições. Agrupe escritas, pré-carregue leituras agressivamente.
Largura de banda é um gargaloMaximize a utilização da largura de banda.
PUTs e GETs cobram por operaçãoUm GET de 64KB custa o mesmo que um GET de 16MB. Otimize o número de requisições, não a eficiência em bytes.
Objetos são imutáveisNunca atualize no lugar. Escreva novas versões, troque um ponteiro. Sem corrupção por escrita parcial.
Armazenamento é baratoNão otimize por espaço. Superdimensione, mantenha versões antigas, deixe o GC limpar depois.

Arquitetura

turbolite adiciona camadas de introspecção e indireção entre o SQLite e o S3 que agrupam, comprimem, rastreiam e buscam páginas de forma eficiente.

Baixar ferramenta