Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RFC 025 - Interoperabilidade da Camada 9 (Opaque Handles & Zero-Copy)

Status: Rascunho Aprovado (Visão v2+) Pilar: S5 (Interoperabilidade Multilinguagem)

1. Resumo

A visão para a v2+ do PAEBIRU estabelece uma fronteira de interoperabilidade ultra-eficiente via FFI (Foreign Function Interface). Para suportar as 13 linguagens do ecossistema sem sacrificar a performance termodinâmica, o protocolo adota Opaque Handles e Zero-Copy, mantendo o estado cognitivo da Camada 9 (LSTP/CSTP) sob gestão exclusiva do Kernel Rust.

2. Motivação

Serialização pesada (JSON, Protobuf) entre o Core e o SDK em transações de alta frequência gera latência e desperdício de energia. Além disso, expor estruturas de memória complexas do Rust diretamente a linguagens com Garbage Collection (como Python ou Java) aumenta o risco de vazamentos e corrupção de estado. O uso de Opaque Handles isola a complexidade e maximiza a vazão cognitiva.

3. Especificação Técnica

3.1. Zero-Copy Cognitivo

A deliberação do agente (BDI) reside na memória do Kernel. O SDK não copia strings ou grafos inteiros para o heap da linguagem hospedeira.

3.2. Opaque Handles (Ponteiros Cegos)

As funções exportadas via C-ABI retornam apenas handles (ponteiros de memória não tipados):

#![allow(unused)]
fn main() {
// Exemplo conceitual em Rust (FFI)
#[no_mangle]
pub extern "C" fn paebiru_l9_get_consciousness_handle() -> *mut Layer9State;
}

3.3. Consultas Cirúrgicas

A interpretação do estado ocorre via chamadas de função específicas que operam sobre o handle:

// Exemplo conceitual no SDK (C-compatible)
bool is_aligned = paebiru_l9_check_alignment(handle);
double temperature = paebiru_l9_get_temperature(handle);

4. Impacto Arquitetural Futuro (v2)

  • Bindings: Mapeamento de todas as funções da Camada 9 para a interface C-ABI no diretório crates/bindings/.
  • SDK: Implementação do wrapper orientado a objetos que gerencia o ciclo de vida (instanciação e drop) dos handles.
  • Python: Atualização do PYTHON_ASYNC_PATTERNS.md para lidar com a concorrência entre o loop do Ator Rust e o asyncio utilizando zero-copy.