Executando verificação de segurança...
7

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:

  1. 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.
  2. 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.
  3. 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.
  4. Comunicação Universal: O motor injeta JSON no stdin do processo filho e captura o resultado pelo stdout, 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

Carregando publicação patrocinada...
1
1

Opa, obrigado por comentar.

Em relação a arquitetura, o AtomicKit é baseado em ADD, ou seja, Atomic-Driven Design.

Cada "átomo" representa um código 100% especializado em algo, a menor carga útil util.

E isso entrega muito valor porquê os atomos podem ser facilmente reescritos, apagados e modificados sem que você tenha um trabalho absurdo.

Sem contar que a IA tem maior performance na geração de códigos pequenos, então para você fazer "vibe-coding" te ajudar a gerar códigos (átomos) mais eficientes e mais fáceis de testar isoladamente.

Se um átomo não faz mais sentido no meio do fluxo, você pode apagar ou alterar sem tar que cavar fundo.

E o valor inicial, sem dúvida, é a possibilidade de usar diversas linguagens facilmente.

Você pode usar Javascript para algo (um átomo) e Python para outra coisa (outro átomo) e depois encadear esses átomos em uma única chamada.

1
1

Achei sua explicação do NPM melhor do que esta. A iniciativa do projeto usar de forma englobada, me parece complexo e uma integração inteligente para resolver esses problemas citados. 🤝

1

Boa, então, tentei mudar um pouco a escrita devido ser um "artigo".

Mas isso é baseado em Atomic-Driven Design, pretendo trazer algum conteúdo sobre o beneficio desse modelo.

Obrigado pelo comentário.

-1
0