• Re: ANNOUNCE: cookfs 1.5.0

    From Harald Oehlmann@21:1/5 to All on Sun May 5 11:22:52 2024
    Am 04.05.2024 um 23:52 schrieb Konstantin Kushnir:
    Hi Everyone!

    I am pleased to announce version 1.5.0 of cookfs.

    This is an attempt to revive this amazing project. Its original
    homepage in only available via webarchive:
    http://web.archive.org/web/20150619084055/http://www.endorser.org/en/blog/tcl/cookfs
    and the last public release 1.3.1 was in 2011 at https://sourceforge.net/projects/cookit/files/cookfs/

    Original description:

    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.

    Supported compression methods are: none, zlib, bzip2 (not enabled by default), lzma2(xz)

    Also, there are 2 versions for almost all features: C code or Tcl code.

    Major changes since the last public release 1.3.1:
    * Add support for xz(lzma2) compression and use it by default
    * Add a smart cache feature
    * Bugfixes

    Homepage and downloads are on github: https://github.com/chpock/cookfs


    Great work ! Cookfs was authored by my TCL network shooting star
    Wojciech Kocjan. This book is just great: https://wiki.tcl-lang.org/page/BOOK+Tcl+8%2E5+Network+Programming

    Just to double check. Are you aware that zip virtual file system is now included in TCL 9.0?
    Is there anything in cookfs, what is not included in TCL 9 core ?
    Then, we may port it to TCL ...

    Take care,
    Harald

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Harald Oehlmann@21:1/5 to All on Mon May 6 09:00:54 2024
    Am 05.05.2024 um 20:03 schrieb Konstantin Kushnir:
    On Sun, 5 May 2024 11:22:52 +0200
    Harald Oehlmann <wortkarg3@yahoo.com> wrote:

    Am 04.05.2024 um 23:52 schrieb Konstantin Kushnir:
    I am pleased to announce version 1.5.0 of cookfs.
    Just to double check. Are you aware that zip virtual file system is now
    included in TCL 9.0?

    Thank you for the headup! I saw this information briefly, but have
    already forgotten.

    Unfortunatelly, I need better compression and lzma is the best choice
    in 2024. Cookfs also offers the option to further improve compression
    by using the solid achive mode. And it is not just a solid mode, but
    a compromise between solid archive benefits and random data access
    within archive.

    Another killer feature of Cookfs is the parameters (compression, page
    size, etc.) for different parts of file. The ability to use your own
    commands for compression/decompression also adds flexibility.

    I haven't dug into asynchronous mode enough yet, where further pages
    are decompressed in the background and the application doesn't have to
    wait for new data to be decompressed when it needs it. It seems that
    this mode is now not working as the developers had planned. It will be
    a nice performance boost if it works.

    Thus, zipfs in core is a nice feature for combining multiple files into
    a single file with a small compression bonus. But it can't be
    considered a true compressed archive when other formats like
    lzma/zstd/bzip2 available, and the zip format is more about portability
    but not flexibility.

    Is there anything in cookfs, what is not included in TCL 9 core ?
    Then, we may port it to TCL ...

    I am not sure about this. A feature of combining multiple files into
    one is not something that many scripts require. Zipfs looks like a
    sufficient tool to fulfill some basic possible requests, such as
    creating a data package.

    Cookfs contains advanced features for creating and working with data packages. This is more interesting for specialized applications such as tclkit systems. Thus, it is better to be as a module, rather than
    taking up space in all the built interpreters.


    Konstantin,
    don't get me wrong. cookfs is great. In my 25 years of experience with
    TCL, I have seen great projects coming and going. The "going" part is
    the problem.
    The best way to preserve something great is to get it into the core.
    There are many compromises required.
    But I invite you as a wizard to look what may be moved to the core, even
    if it is a small piece.
    Wizards normally tend to do their thing and that is ok. But if the core
    may get a small piece, welcome !
    Take care,
    Harald

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Niehren@21:1/5 to Konstantin Kushnir on Tue May 14 00:20:44 2024
    Konstantin Kushnir wrote:

    Hi Everyone!

    I am pleased to announce version 1.5.0 of cookfs.

    This is an attempt to revive this amazing project. Its original
    homepage in only available via webarchive:

    http://web.archive.org/web/20150619084055/http://www.endorser.org/en/blog/tcl/cookfs
    and the last public release 1.3.1 was in 2011 at https://sourceforge.net/projects/cookit/files/cookfs/

    Original description:

    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.

    Supported compression methods are: none, zlib, bzip2 (not enabled by default), lzma2(xz)

    Also, there are 2 versions for almost all features: C code or Tcl code.

    Major changes since the last public release 1.3.1:
    * Add support for xz(lzma2) compression and use it by default
    * Add a smart cache feature
    * Bugfixes

    Homepage and downloads are on github: https://github.com/chpock/cookfs


    Hi Konstantin,

    would it be possible to add password encryption to cookfs ?

    in tclexecomp is currently zvfs used to have an encrypted zip-archive with
    some code protection.

    greetings,
    Michael

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)