El formato SELF, basado en hacer que el ejecutable sea una base de datos SQLite, da un paso más y permite que el programa en ejecución escriba su propio estado dentro del mismo fichero del que se ejecuta. La técnica emplea binfmt_misc del kernel de Linux para asociar el archivo a un intérprete personalizado que abre la base de datos, mapea sus segmentos y salta al punto de entrada. El proceso obtiene su propia ruta a través de argv[0], ya que el kernel entrega al intérprete la ruta del fichero original en lugar de hacer execve sobre él.
Como demostración, el autor presenta self-httpd, un servidor web mínimo consistente en un único archivo que es, a la vez, programa, sitio web, rutas y registro de visitantes. El servidor expone tres tablas (routes, visits y presses) y atiende peticiones HTTP al tiempo que actualiza su propio fichero de forma transaccional. Cualquier consulta SQL estándar sirve para inspeccionarlo: SELECT, INSERT o UPDATE funcionan sobre el binario en marcha, y herramientas como sqldiff permiten auditar qué cambió entre dos versiones del mismo programa.
La propuesta se inspira en redbean de Justine Tunney, un servidor web portable de un solo archivo basado en Cosmopolitan y un ZIP autoextraíble. SELF prescinde del archivo embebido porque la propia base de datos actúa como contenedor. La consecuencia práctica es que distribuir, desplegar y editar la aplicación se reduce a mover y consultar un único fichero SQLite, lo que elimina directorios como /var, /tmp o /home para el estado de la aplicación. Extensiones como FTS5 añaden búsqueda de texto completo sobre las propias páginas servidas.
