Estado: ✅ Aceptada Fecha: 2026-03-19 (decisión original) · revisada 2026-05-04 Contexto: rewrite del producto desde Go a Rust.

🧭 Contexto

El motor anterior estaba en Go y tenía la superficie típica de un proyecto Go: docenas de dependencias transitivas, varios replace en go.mod, y una dificultad real para auditar qué entraba al binario final. Para un producto que pretende ser una BD seria (datos de usuarios) y al mismo tiempo crecer comercialmente, ese nivel de opacidad de supply-chain era inviable.

💡 Decisión

El core de gabysql se escribe en Rust y Cargo.toml declara cero dependencias externas. Todo se construye con std. La excepción es la imagen Docker base (Debian) y el toolchain (Rust). Cualquier dependencia futura requiere una ADR explícita justificándola.

🔄 Alternativas consideradas

📊 Consecuencias

Positivas:

Negativas:

Neutras:

🔗 Referencias