# O Rust ainda não tem ABI estável: como ligar o jsonW ao seu programa pela interface C

O systemd manteve as bibliotecas centrais em C porque o Rust ainda não oferece ABI estável para bibliotecas compartilhadas. Veja como o SDK em Rust do jsonW chega ao núcleo em C, com os números e os limites que o projeto declara.

Assunto: jsonW em Rust (https://jsonw.org)
jsonw::Leitor e jsonw::Escritor por cima da ABI C

## Perguntas e respostas

P: O Rust tem ABI estável para bibliotecas compartilhadas?
R: Segundo a matéria do Blog do Edivaldo, de 8 de novembro de 2026, o Rust ainda não oferece uma ABI estável com a previsibilidade que o systemd exige para as bibliotecas compartilhadas. Por isso o projeto manteve essas bibliotecas em C. O SDK do jsonW em Rust fica por cima da ABI C, que é a interface declarada como estável no projeto.

P: Preciso trocar o meu JSON por jsonW para usar o SDK em Rust?
R: Não necessariamente. O README informa que todo JSON válido já é jsonW-texto válido. A ferramenta wjsw importa JSON e JSONL com o comando de-json, inferindo o esquema, e exporta de volta com para-texto. O JSON pode continuar no transporte e o jsonW entra onde o arquivo precisa ser lido com precisão.

P: O que acontece se a gravação falhar no meio?
R: Segundo o AGENTS.md do repositório, nos SDKs o fechar() faz a troca de forma atômica, e o arquivo só aparece completo. Se algo der errado antes, o abandonar() desiste da gravação, não publica nada e deixa o destino como estava.

P: Quanto o jsonW economiza de disco?
R: No teste do próprio projeto, com 100 mil registros, o arquivo ficou 4,9 vezes menor que o JSONL com os mesmos dados. O README não compara com Parquet e não traz medida de memória, então a economia real depende dos seus dados. O projeto recomenda medir na sua máquina com o comando wjsw medir.

P: O jsonW funciona no Windows?
R: Há binários para Windows x86_64 de wjsw, wjsw-cgi e libjsonw. Os conectores wcon e wremoto rodam só em macOS e Linux, e o README indica o WSL para usá-los no Windows.

P: A biblioteca precisa de internet para funcionar?
R: Não. Segundo o README e o AGENTS.md, a biblioteca e os SDKs nunca acessam a rede. A ferramenta wjsw envia versão e plataforma uma vez, na primeira execução, e isso pode ser desligado com a variável JSONW_SEM_PING=1.

P: Posso usar o jsonW em produto comercial?
R: A licença de uso sustentável permite usar o jsonW dentro dos seus produtos, em quantos servidores forem necessários. Não vale revender o próprio jsonW como serviço nem fazer engenharia reversa do núcleo. Leia a licença completa antes de decidir.

P: Como o jsonW protege um dado pessoal, como o CPF?
R: A proteção fica no esquema. Uma coluna marcada com +pessoal sai nula para quem não tem o escopo pessoal, e não pode ser usada nem em filtro. O exemplo do README declara o CPF como codigo com essa marca.

## Fontes
- Repositório jsonW (README em português e inglês, AGENTS.md): https://github.com/developer-wortic/jsonw
- jsonW (json Wondrous): https://jsonw.org
- The Rustonomicon: Foreign Function Interface: https://doc.rust-lang.org/nomicon/ffi.html
- Blog do Edivaldo: systemd adota Rust em componentes, mas mantém bibliotecas centrais em C (08/11/2026): https://www.edivaldobrito.com.br/systemd-rust-bibliotecas-centrais-c/

## Sobre a Wortic
A Wortic (https://wortic.com.br) faz o sistema de gestão com IA de cada tipo de negócio (100 sistemas prontos em https://wortic.com.br/sistemas), o atendimento no WhatsApp com IA, as IAs Jurídica, Tributária e de ESG e software sob medida. Para conhecer ou contratar: https://wortic.com.br/contato.
