📑 Referência da API¶
Referência técnica completa para todas as classes, métodos e funções do ecossistema B-FAST em Python e TypeScript.
🧭 Visão Geral¶
-
⚡ Módulo Principal (
b_fast)
BFasteBFastError. Serialização e decodificação binária de alta vazão com núcleo em Rust. -
🚀 Frameworks Web (
b_fast.integration&b_fast.django)
BFastResponse,BFastStreamingResponsepara FastAPI/Starlette, eBFastRendererpara Django Ninja. -
📊 Data Science (
b_fast.data)
encode_dataframeedecode_dataframepara serialização nativa de DataFrames Polars, Pandas e tabelas PyArrow. -
🤖 FastMCP 2.0 (
b_fast.fastmcp)
FastMCPBFast,bfast_toolebfast_resourcepara comunicação de alta performance em ferramentas de Agentes de IA. -
💻 Cliente TypeScript (
bfast-client)
bfastFetch,bfastQueryOptions,BFastDecodereUtilitários de Streaming.
⚡ Módulo Principal (b_fast)¶
Classe BFast¶
O motor primário de serialização e decodificação implementado em Rust com PyO3.
Métodos¶
encode_packed(obj: Any, compress: bool = True) -> bytes¶
Serializa qualquer objeto Python (primitivos, dicionários, listas, modelos Pydantic, arrays NumPy, DataFrames Polars e Pandas) no formato binário B-FAST empacotado.
- Parâmetros:
obj: Objeto a ser serializado. Suporta modelos Pydantic v2, arrays NumPy, DataFrames e Series Polars/Pandas, datetime, UUID, Decimal, dicionários e listas.compress(bool, padrão=True): Habilita compressão LZ4. Cargas > 1MB utilizam automaticamente compressão em múltiplos chunks paralelos.
- Retorno:
bytescontendo a carga binária empacotada. - Lança:
BFastErrorcaso ocorra falha na serialização.
decode_packed(data: Union[bytes, bytearray, memoryview]) -> Any¶
Desserializa uma carga binária B-FAST de volta para estruturas nativas do Python.
- Parâmetros:
data: Buffer binário a ser decodificado.
- Retorno: Objeto nativo do Python (dict, list, primitivo, array NumPy, datetime, etc.).
- Lança:
BFastErrorse a carga estiver malformada.
Exceção BFastError¶
Lançada sempre que a serialização ou decodificação encontra dados inválidos. Herda de ValueError.
🚀 Integrações com Frameworks Web¶
FastAPI / Starlette (b_fast.integration)¶
BFastResponse¶
Classe de resposta para FastAPI/Starlette que codifica os dados diretamente em binário B-FAST.
from b_fast import BFastResponse
@app.get("/dados")
def get_dados():
return BFastResponse(meus_dados, compress=True)
- Content-Type:
application/x-bfast
BFastStreamingResponse¶
Resposta em streaming para FastAPI/Starlette para envio contínuo de dados em frames.
from b_fast import BFastStreamingResponse
@app.get("/stream")
async def stream():
async def gerador():
for i in range(10):
yield {"contagem": i}
return BFastStreamingResponse(gerador())
- Content-Type:
application/x-bfast-stream
Django & Django Ninja (b_fast.django)¶
Django & Django Ninja (b_fast.django)¶
BFastRenderer¶
Renderizador nativo para Django Ninja baseado em BaseRenderer.
from ninja import NinjaAPI
from b_fast.django import BFastRenderer
api = NinjaAPI(renderer=BFastRenderer())
- Media Type:
application/x-bfast
BFastHttpResponse (Django)¶
Subclasse de HttpResponse do Django que retorna dados em binário B-FAST.
BFastStreamingHttpResponse (Django)¶
Subclasse de StreamingHttpResponse do Django para envio progressivo de frames B-FAST.
📊 Módulo de Data Science (b_fast.data)¶
encode_dataframe¶
Serializa DataFrames/Series do Polars ou Pandas e Tabelas PyArrow em formato B-FAST.
- Parâmetros:
df: DataFrame ou Series.orient(str, padrão="records"): Layout de serialização:"records": Lista de dicionários de linha ([ {col: val}, ... ]). Ideal para APIs REST e frontends."columns": Dicionário colunar ({ col: [vals] }). Ultra-rápido, sem cópias de memória adicionais."split": Dicionário com{'columns': [...], 'data': [[...], ...]}.
compress(bool, padrão=True): Habilita compressão LZ4.
decode_dataframe¶
Reconstrói DataFrames a partir de bytes binários do B-FAST.
- Parâmetros:
data: Buffer binário B-FAST.engine(str, padrão="auto"): Motor a ser instanciado ("auto","polars","pandas"ou"arrow").
🤖 Módulo FastMCP 2.0 (b_fast.fastmcp)¶
FastMCPBFast¶
Subclasse do servidor FastMCP com suporte pré-configurado a ferramentas e recursos binários B-FAST.
bfast_tool¶
Decorador que serializa retornos de ferramentas em blobs base64 comprimidos com B-FAST, reduzindo o consumo de tokens em até 85%.
bfast_resource¶
Decorador para definição de recursos binários B-FAST em servidores FastMCP.
💻 Cliente TypeScript (bfast-client)¶
bfastFetch¶
import { bfastFetch } from 'bfast-client';
const usuarios = await bfastFetch<Usuario[]>('/api/usuarios', {
schema: UsuarioSchema, // Validação opcional com Zod ou Standard Schema
compress: true,
});
bfastQueryOptions¶
import { useQuery } from '@tanstack/react-query';
import { bfastQueryOptions } from 'bfast-client';
const { data } = useQuery(
bfastQueryOptions<Usuario>({
queryKey: ['usuario', 1],
url: '/api/usuarios/1',
schema: UsuarioSchema,
staleTime: 5000,
})
);
bfastInfiniteQueryOptions¶
Utilitário para paginação e carregamento contínuo no useInfiniteQuery.
BFastDecoder¶
import { BFastDecoder } from 'bfast-client';
const dados = BFastDecoder.decode<Usuario>(buffer, {
typedArrays: false, // true para Float64Array com zero alocações
schema: UsuarioSchema,
});
Utilitários de Streaming¶
decodeReadableStream<T>(stream: ReadableStream<Uint8Array>, options?: StreamDecodeOptions<T>): AsyncGenerator<T>¶
Consome streams do Fetch API e itera sobre frames validados em tempo real.