KeePass es un gestor de contraseñas ampliamente respetado por su seguridad y enfoque en la soberanía de los datos. Sin embargo, el formato KDBX, utilizado desde 2007, basado en XML, ha generado problemas para los desarrolladores y usuarios al intentar incorporar nuevas funciones modernas. El formato XML actual obliga a reescribir todo el archivo KDBX incluso para cambios menores, lo que consume memoria y ralentiza las operaciones, especialmente en dispositivos móviles. Además, la estructura rígida del XML dificulta la adición de nuevas características sin romper la compatibilidad con versiones anteriores, lo que ha llevado a soluciones improvisadas y fragmentadas, como el almacenamiento de datos como TOTP (Time-based One-Time Password) en atributos personalizados, donde diferentes plugins y clientes utilizan formatos incompatibles. Esto crea una experiencia inconsistente para el usuario y complica el desarrollo.
El problema se agrava con la inclusión de características más complejas como Passkeys, que se han tenido que adaptar a la fuerza dentro de los atributos XML, generando incompatibilidades temporales y una estructura desordenada. El uso excesivo de iconos base64 dentro del XML también contribuye a un tamaño de archivo inflado y a un rendimiento más lento. Además, la centralización del desarrollo del formato KDBX en una sola persona ha limitado la capacidad de adaptación a las necesidades de una comunidad de usuarios y desarrolladores cada vez mayor, especialmente con el auge de forks como KeePassXC.
La solución propuesta es migrar el formato KDBX a SQLite. SQLite es una base de datos ligera y embebida que ofrece una estructura de datos más flexible y eficiente. Permitiría añadir nuevas características de forma nativa sin romper la compatibilidad, mejorar el rendimiento al evitar la necesidad de cargar todo el archivo en memoria, reducir el tamaño del archivo al eliminar la necesidad de codificar los iconos en base64, y facilitar la colaboración entre diferentes desarrolladores y forks. Además, SQLite ofrece mecanismos de integridad y concurrencia que mejorarían la robustez del formato KDBX. Aunque la transición a SQLite implicaría un cambio significativo, los beneficios en términos de flexibilidad, rendimiento y colaboración superan con creces los inconvenientes, permitiendo que KeePass siga siendo un gestor de contraseñas líder en el futuro.
