• ANNOUNCE: cookfs 1.9.0

    From Konstantin Kushnir@chpock@gmail.com to comp.lang.tcl on Sun Oct 20 23:47:12 2024
    From Newsgroup: comp.lang.tcl

    Hi Everyone!

    I am pleased to announce version 1.9.0 of cookfs.
    Homepage and downloads are on github: https://github.com/chpock/cookfs

    Please fill free to check/build/use it. Any feedback is welcome!

    =====================================================================

    Cookfs is a Tcl virtual filesystem using a compressed archive format to
    allow embedding multiple files in an archive that Tcl scripts can
    access directly.

    It is optimized for storing Tcl packages (allowing around 10%-20%
    smaller sizes ratio than mk4vfs while still using zlib compression),
    small, fast and integrated with Tcl.

    It is designed only for use as Tcl VFS and provides multiple
    optimizations especially for delivering Tcl based standalone
    applications.

    Major changes since the last public release:

    1. Improved deduplication. When adding a new file that is exactly the
    same as an already added file, the new file will not take up space in
    the archive, but will use the bytes of the previous file.

    2. Added a fileset feature. File sets are the ability to have different
    sets of files in the same archive and to switch between them. File sets
    can have either arbitrary names or automatic names that correspond to
    the current platform and/or current version of Tcl. In the latter case,
    when the archive is mounted, the file set that corresponds to the
    current platform and/or version of Tcl will be selected.

    This makes it possible to create archives that, for example, when
    mounted on Windows platform with the Tcl8.6 interpreter, will have one
    set of files, and when mounted on Linux platform with the Tcl9.0
    interpreter, will have a different set.

    This feature will be used in the future to provide universal and
    cross-platform packages (archives) that will contain files (including
    loadable modules) suitable for multiple platforms and/or versions of
    Tcl.

    3. Added the ability to link the package directly to zlib (without zlib functions in the Tcl C API), and to link the package to the mbedTLS
    library for cryptographic functions. This will allow zlib and mbedTLS
    to be used directly if cookfs is not used as a separate package, but as
    part of an application that is already linked to these libraries.

    In the case of zlib, this allows for faster and more memory-efficient
    zlib compression, because with the Tcl C API it is necessary to convert compressed/uncompressed memory areas into a Tcl object. In the case of
    mbedTLS, this allows to use the same code for SHA256 and AES encryption cryptographic functions, rather than duplicating it with yet another implementation.

    4. Added support for attributes for VFS root, files and directories.
    Using attributes, it is possible to manage the file system, or to get information and explore it. For example, using attributes, it is
    possible to change the current compression method, set a password,
    enable write-to-memory mode, get information about compression of
    existing files (compression method, size before and after compression),
    and much more.

    5. The values for the pagesize/smallfilesize/smallfilebuffer mount
    parameters are now retained and the previous values will be used for
    subsequent mounts.

    6. Added ::cookfs::sha256 command to get SHA256 hash for certain data.
    This command is only available if the package is built with
    cryptographic features enabled (they are enabled by default).
    --
    Best regards,
    Konstantin Kushnir
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Harald Oehlmann@wortkarg3@yahoo.com to comp.lang.tcl on Tue Oct 22 09:45:28 2024
    From Newsgroup: comp.lang.tcl

    Konstantin,

    I really appreciate your great work.
    For me, it is crucial, to have long term support. So, having features in
    the core TCL would be highly appreciated.

    I can understand that the barer is high and the potential bashing bar is present.

    So if I can support to get any of the features to the core - I would appreciate. Christian Werner is also working on a cacheing mechanism to increase glob speed on (bundled) zip files.

    Thank you for all,
    Harald

    Am 20.10.2024 um 22:47 schrieb Konstantin Kushnir:
    Hi Everyone!

    I am pleased to announce version 1.9.0 of cookfs.
    Homepage and downloads are on github: https://github.com/chpock/cookfs

    Please fill free to check/build/use it. Any feedback is welcome!

    =====================================================================

    Cookfs is a Tcl virtual filesystem using a compressed archive format to
    allow embedding multiple files in an archive that Tcl scripts can
    access directly.

    It is optimized for storing Tcl packages (allowing around 10%-20%
    smaller sizes ratio than mk4vfs while still using zlib compression),
    small, fast and integrated with Tcl.

    It is designed only for use as Tcl VFS and provides multiple
    optimizations especially for delivering Tcl based standalone
    applications.

    Major changes since the last public release:

    1. Improved deduplication. When adding a new file that is exactly the
    same as an already added file, the new file will not take up space in
    the archive, but will use the bytes of the previous file.

    2. Added a fileset feature. File sets are the ability to have different
    sets of files in the same archive and to switch between them. File sets
    can have either arbitrary names or automatic names that correspond to
    the current platform and/or current version of Tcl. In the latter case,
    when the archive is mounted, the file set that corresponds to the
    current platform and/or version of Tcl will be selected.

    This makes it possible to create archives that, for example, when
    mounted on Windows platform with the Tcl8.6 interpreter, will have one
    set of files, and when mounted on Linux platform with the Tcl9.0
    interpreter, will have a different set.

    This feature will be used in the future to provide universal and cross-platform packages (archives) that will contain files (including loadable modules) suitable for multiple platforms and/or versions of
    Tcl.

    3. Added the ability to link the package directly to zlib (without zlib functions in the Tcl C API), and to link the package to the mbedTLS
    library for cryptographic functions. This will allow zlib and mbedTLS
    to be used directly if cookfs is not used as a separate package, but as
    part of an application that is already linked to these libraries.

    In the case of zlib, this allows for faster and more memory-efficient
    zlib compression, because with the Tcl C API it is necessary to convert compressed/uncompressed memory areas into a Tcl object. In the case of mbedTLS, this allows to use the same code for SHA256 and AES encryption cryptographic functions, rather than duplicating it with yet another implementation.

    4. Added support for attributes for VFS root, files and directories.
    Using attributes, it is possible to manage the file system, or to get information and explore it. For example, using attributes, it is
    possible to change the current compression method, set a password,
    enable write-to-memory mode, get information about compression of
    existing files (compression method, size before and after compression),
    and much more.

    5. The values for the pagesize/smallfilesize/smallfilebuffer mount
    parameters are now retained and the previous values will be used for subsequent mounts.

    6. Added ::cookfs::sha256 command to get SHA256 hash for certain data.
    This command is only available if the package is built with
    cryptographic features enabled (they are enabled by default).


    --- Synchronet 3.20a-Linux NewsLink 1.114