Skip to content
/ cookfs Public

Cookfs is a Tcl virtual filesystem using a compressed archive format to allow embedding multiple files in an archive

License

Notifications You must be signed in to change notification settings

chpock/cookfs

Repository files navigation

cookfs

About

This repository is an attempt to revive this amazing project. Original source repository is at sourceforge.net and its homepage is at http://www.endorser.org/en/blog/tcl/cookfs. As for now, the homepage is unmaintained and is only available via WebArchive.

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.

Compatibility

This package requires Tcl 8.5 or later, however it has only been tested with Tcl 8.6.14 and Tcl 9.0b2

Tcl variant of Cookfs also requires the tclvfs package.

Built packages and sources

The source code is available on Github.

This package uses the Tcl Extension Architecture (TEA) to build and install on Linux, Mac, or Windows platforms. For Windows platform only building with Mingw-w64 toolchain is supported.

The standard TEA config, make and install process is supported.

$ git clone https://github.com/chpock/cookfs.git
$ cd cookfs
$ git submodule update --init --recursive
$ mkdir build && cd build
$ ../configure
$ make
$ make test
$ make install

Already built packages are available on Github under Releases.

There are packages for the following platforms:

  • Windows x86 and x86_64: Windows XP or higher is required. However, they are only tested on Windows 10.
  • Linux x86 and x86_64: built and tested on Cenos6.10. Require glibc v2.12 or higher.
  • MacOS x86 and x86_64: built and tested on MacOS 10.12. However, these packages should be compatible with MacOS as of version 10.6.

Copyrights

Copyright (c) 2010-2011 Wojciech Kocjan, Pawel Salawa

Copyright (c) 2024 Konstantin Kushnir [email protected]

License

This code is licensed under the same terms as the Tcl Core.

This package contains bzip2 source code, which is copyright Julian R Seward.

License for bzip2 is contained in file "bzip2/LICENSE" and applies to all files under bzip2/ subdirectory.

This package contains LZMA SDK, which is copyright Igor Pavlov.

License for LZMA SDK is contained in file "7zip/DOC/License.txt" and applies to all files under 7zip/ subdirectory.

This package contains Zstandard source code, which is copyright Meta Platforms, Inc. and affiliates.

License for Zstandard is contained in file "zstd/LICENSE" and applies to all files under zstd/ subdirectory.

This package contains brotli source code, which is copyright the Brotli Authors.

License for brotli is contained in file "brotli/LICENSE" and applies to all files under brotli/ subdirectory.

About

Cookfs is a Tcl virtual filesystem using a compressed archive format to allow embedding multiple files in an archive

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published