Biblioteca de sistema de archivos integrado de código abierto (o sistema de archivos virtual de un solo archivo o almacenamiento estructurado) para C

No estoy seguro de cuál podría ser el nombre “general” de algo como esto. Estoy buscando una biblioteca que me dé un formato de archivo para almacenar diferentes tipos de datos binarios en un solo archivo en expansión.

  • Código abierto, no GPL (LGPL ok)
  • Interfaz C
  • el formato de archivo es un solo archivo
  • múltiples archivos dentro del uso de una API de archivo similar a POSIX (o varios “blobs” dentro del uso de alguna otra API)
  • La edición del archivo / estructura se realiza en el lugar
  • primero confiable, segundo ejecutante

Ejemplos incluyen:

  • Las unidades virtuales de una máquina virtual.
  • whefs
  • HDF
  • CDF
  • NetCDF

Problemas con lo anterior:

  • Whefs no parece ser muy maduro, pero describe mejor lo que busco
  • HDF, CDF, NetCDF son utilizables (también son muy confiables y rápidos), pero son bastante complicados y no estoy del todo convencido de su soporte para las “burbujas” binarias opacas

Editar:
Olvidé mencionar, otra pregunta relevante:
Sistema de archivos virtual simple en C / C ++
Otra pregunta similar:
¿Existe una alternativa de código abierto para los archivos compuestos de Windows?

Editar:
Condición añadida de la edición en el lugar.

Editar:
Whefs reemplazado por: whio_epfs

Esto parece hacer lo que estaba buscando: libgsf

Aún es necesario probar su confiabilidad / rendimiento y cómo el formato binario es multiplataforma.

Parece que estás hablando del dispositivo Linux loopback, que te permite tratar un archivo en un sistema de archivos como un dispositivo de bloque de primera clase (y luego pasar a mkfs, mount, etc.)

(¿Qué tipo de plataforma está apuntando? ¿Un Unixlike con todas las funciones? ¿Algo en el espacio incrustado con una pequeña huella?)

La biblioteca WxWindows admite archivos ZIP (consulte http://docs.wxwidgets.org/stable/wx_wxarc.html#wxarc) . Esto también tiene la ventaja de que puede mirar los contenidos utilizando un administrador ZIP (por ejemplo, WINZIP).

Una alternativa comercial es ChillKat ( http://www.chilkatsoft.com/ )

Si la seguridad es una preocupación, cifre el contenido del archivo y modifique los nombres de los archivos en el archivo ZIP.

¿Qué hay de BerkeleyDB ? No es exactamente un sistema de archivos, pero es bastante transparente para almacenar ‘datos binarios’ en un archivo. La licencia parece ser bastante permisiva también.