⚡ B-FAST (Binary Fast Adaptive Serialization Transfer)¶
O B-FAST é um protocolo de serialização binária de ultra-alta performance, desenvolvido em Rust para o ecossistema Python e TypeScript. Ele foi projetado para substituir o JSON em rotas críticas onde latência, uso de CPU e largura de banda são gargalos.
"Performance não é apenas sobre velocidade—é sobre eficiência onde mais importa"
O B-FAST nasceu do reconhecimento de que aplicações modernas precisam de mais do que apenas serialização rápida—elas precisam de serialização inteligente que se adapta às restrições do mundo real. Após extensa otimização, o B-FAST encontrou seu nicho perfeito em ambientes com restrição de largura de banda, alcançando 1.7x mais rápido que orjson para objetos simples e 5.7x mais rápido em redes lentas.
Filosofia: Acreditamos que o futuro da transferência de dados não está apenas na velocidade bruta da CPU, mas em protocolos inteligentes que minimizam o overhead de rede mantendo excelente performance. O B-FAST representa nossa contribuição para uma web mais eficiente e consciente da largura de banda.
🚀 Funcionalidades & Arquitetura¶
-
⚡ Performance Extrema
2.01 ms para 10k objetos (4.1x mais rápido que orjson, 6.0x vs JSON). Até 24x mais rápido em serialização de primitivos via fast-paths Rust.
-
🌊 Streaming em Tempo Real & MCP
Streaming binário contínuo (
application/x-bfast-stream), transferência HTTP chunked e suporte ao Model Context Protocol (MCP). -
🐍 APIs Python & Data Science
Integrações diretas para FastAPI, Django Ninja, Polars e Pandas com serialização nativa de DataFrames.
-
💻 TypeScript Moderno & TanStack Query
Cliente para navegadores e Node.js com suporte a TanStack Query, validação de schemas em runtime (Zod / Standard Schema) e Wasm LZ4.
-
🤖 Pronto para IAs & LLMs (
llms.txt)
Endpoint padronizado para OpenCode, Cursor, Claude Code e Copilot gerarem código sem alucinações.
-
📚 Referência Completa da API
Referência técnica completa para todas as classes, métodos, parâmetros e utilitários em Python e TypeScript.
📊 Performance¶
🚀 Objetos Simples (10.000)¶
| Formato | Tempo (ms) | Speedup |
|---|---|---|
| JSON | 12.0ms | 1.0x |
| orjson | 8.19ms | 1.5x |
| B-FAST | 2.01ms | 🚀 6.0x |
B-FAST é 4.1x mais rápido que orjson!
🌊 Protocolo de Streaming (1.000 frames)¶
| Métrica | Performance | Speedup / Throughput |
|---|---|---|
| Streaming Decode (Alinhado) | 11.8ms | ~85.000 frames/s |
| Streaming Decode (Fragmentado) | 13.6ms | ~73.500 frames/s |
| Latência por Frame Único | 139.2µs | Parsing instantâneo em tempo real |
| Throughput Sustentado de Stream | 12.500 frames/s | Feeds de eventos em alta frequência |
🔄 Round-Trip (Encode + Rede + Decode)¶
📡 100 Mbps (Rede Lenta)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 114.5ms | 0.8x |
| orjson | 91.7ms | 1.0x |
| B-FAST + LZ4 | 16.1ms | 🚀 5.7x |
📡 1 Gbps (Rede Rápida)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 29.4ms | 0.5x |
| orjson | 15.3ms | 1.0x |
| B-FAST + LZ4 | 7.2ms | 🚀 2.1x |
📡 10 Gbps (Rede Ultra-Rápida)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 20.9ms | 0.4x |
| orjson | 7.7ms | 1.0x |
| B-FAST + LZ4 | 6.3ms | 🚀 1.2x |
🎯 Casos de Uso Ideais¶
- 📱 Mobile/IoT: 89% economia de dados + 5.7x performance em redes lentas
- 🌐 APIs com redes lentas: Até 5.7x mais rápido que orjson
- 📊 Data pipelines: 14-96x speedup para arrays NumPy
- 🗜️ Storage/Cache: Compressão superior integrada
- 🚀 Objetos simples: 4.1x mais rápido que orjson
- 🌊 Streaming em Tempo Real: > 12.500 frames/s com parsing de chunks sem alocações extras
📦 Instalação¶
Backend (Python)¶
ouFrontend (TypeScript)¶
🛠️ Uso Básico¶
Python¶
import b_fast
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
email: str
# Criar encoder
bf = b_fast.BFast()
# Dados de exemplo
users = [User(id=i, name=f"User {i}", email=f"user{i}@example.com") for i in range(1000)]
# Serializar
data = bf.encode_packed(users, compress=True)
print(f"Tamanho: {len(data)} bytes")
# Deserializar
decoded = bf.decode_packed(data)
TypeScript¶
import { BFastDecoder } from 'bfast-client';
async function loadData() {
const response = await fetch('/api/users');
const buffer = await response.arrayBuffer();
// Decodifica e descomprime automaticamente
const users = BFastDecoder.decode(buffer);
console.log(users);
}
🔗 Links Úteis¶
- Começando - Tutorial completo
- Frontend - Integração TypeScript
- Performance - Análise técnica detalhada
- Solução de Problemas - Guia de troubleshooting
📄 Licença¶
Distribuído sob a licença MIT. Veja LICENSE para mais informações.