Misturar Node, Rust, Go e Python nunca foi... tão fácil?
Salve,
Queria compartilhar um projeto que venho desenvolvendo chamado AtomicKit. A ideia nasceu da frustração de ter que escolher entre a performance do Rust, a facilidade do Python para IA/Dados e o ecossistema do Node.js em um mesmo workflow.
O que é?
O AtomicKit é um orquestrador que permite criar "Atoms" (unidades lógicas em YAML + Código) e "Strands" (pipelines que encadeiam esses átomos).
O que ele faz de diferente:
- Poliglotismo Real via STDIN/OUT: Ele não usa apenas scripts. O motor gerencia o ciclo de vida: baixa dependências (
pip,npm), inicializa módulos Go e compila binários Rust em tempo de execução (JIT-like) através do Cargo. - Sistema Imunológico: Antes de qualquer execução, o input é validado contra um JSON Schema (Ajv) definido no YAML do átomo. Se o contrato for violado, a execução nem começa.
- Recursividade de Strands: Uma das funcionalidades mais fortes é que uma Strand pode chamar outra Strand. Isso permite criar workflows extremamente complexos e modulares, quase como blocos de LEGO lógicos.
- Comunicação Universal: O motor injeta JSON no
stdindo processo filho e captura o resultado pelostdout, permitindo que qualquer linguagem que fale JSON possa ser um "Átomo".
Exemplo de um Átomo em Rust:
name: compute_hash
runtime: rust
require: [ "[email protected]" ]
implementation: |
let text = input["data"].as_str().unwrap_or("");
let mut hasher = sha2::Sha256::new();
// ... lógica de hash
serde_json::json!({ "hash": result })
Por que usar?
Se você precisa de um pipeline onde o pré-processamento é melhor em Python, o cálculo pesado em Rust e a integração final em Node, o AtomicKit resolve a "cola" entre esses mundos sem você precisar subir 3 microserviços diferentes.
O que acham dessa abordagem?
Pacote NPM: https://www.npmjs.com/package/scriba-atomickit