Scaffold inicial: workspace Rust + SDDs completos
Arranque del proyecto hammer (distro AI-nativa: laboratorio funcional en el sótano, terminal mutable clásica arriba, integración de IA programadora). - Workspace Rust (compila, tests verdes): hammer-core, hammer-build, hammer-cli (bin `hammer`), hammerd. - SDDs 00-10 + 6 ADRs en docs/ con toda la arquitectura. - Esqueletos navegables mapeados a las fases del roadmap; Fase 0/1 listas para implementar el sandbox real. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# ADR 0001 — Rust para el tooling y los daemons
|
||||
|
||||
- **Estado:** aceptada
|
||||
- **Fecha:** 2026-06-06
|
||||
|
||||
## Contexto
|
||||
|
||||
Necesitamos un lenguaje para `hammerd`, las CLIs y el daemon del diario. Candidatos: Rust, Go,
|
||||
Zig. El sistema manipula ELF, sockets UNIX, `fanotify`, `overlayfs`, namespaces, y produce
|
||||
binarios que deben correr en un userland musl, posiblemente estáticos.
|
||||
|
||||
## Decisión
|
||||
|
||||
**Rust** para todo el tooling y los daemons.
|
||||
|
||||
## Razones
|
||||
|
||||
- **Binarios estáticos-musl** de primera (`x86_64-unknown-linux-musl`), justo nuestro target.
|
||||
- Ecosistema fuerte para lo que hacemos: parsing/edición ELF, sockets, `nix`/`rustix` para
|
||||
syscalls (`fanotify`, namespaces), `blake3`, `serde`.
|
||||
- Seguridad de memoria sin GC; importante en un daemon de larga vida con privilegios.
|
||||
- El autor lo eligió explícitamente.
|
||||
|
||||
## Consecuencias
|
||||
|
||||
- Curva de entrada más alta que Go; asumida.
|
||||
- Compilación del compilador del lab es **ortogonal**: escribimos `hammer` en Rust, el lab
|
||||
invoca `zig cc` para compilar C/C++ upstream. Sin conflicto (ver [ADR 0003](0003-zig-cc-builder.md)).
|
||||
- Perfil `release` ya configurado para binarios pequeños (`opt-level=z`, `lto`, `strip`,
|
||||
`panic=abort`).
|
||||
Reference in New Issue
Block a user