Just added some new diagrams to describe the internals of the https://thi.ng/block-fs block storage & filesystem (incl. some examples) and also added/updated CLI tooling docs...
Just added some new diagrams to describe the internals of the https://thi.ng/block-fs block storage & filesystem (incl. some examples) and also added/updated CLI tooling docs...
#ReleaseWednesday Just pushed a new version of https://thi.ng/block-fs, now with additional multi-command CLI tooling to convert & bundle a local file system tree into a single block-based binary blob (e.g. for bundling assets, or distributing a virtual filesystem as part of a web app, or for snapshot testing, or as bridge for WASM interop etc.)
Also new, the main API now includes a `.readAsObjectURL()` method to wrap files as URLs to binary blobs with associated MIME types, thereby making it trivial to use the virtual filesystem for sourcing stored images and other assets for direct use in the browser...
(Ps. For more context see other recent announcement: https://mastodon.thi.ng/@toxi/114264980961483146)
#ThingUmbrella #ReleaseTuesday... New package (initial alpha release):
https://thi.ng/block-fs provides highly customizable & extensible block-based storage with an optional hierarchical filesystem layer. This is useful everywhere you might need virtual filesystem, though the storage providers can also be used without the filesystem layer (e.g. for #Forth-style block data/editors).
The default configuration provides:
- arbitrarily nested directories
- filenames (UTF-8) of max. 31 bytes per directory level
- max. 32 owner IDs
- file locking
- creation/modification timestamps (64 bit)
- efficient append writes
Currently included storage providers: TypedArray-based in-memory and host filesystem based file storage (one block per file). More are planned (e.g. IndexedDB, remote endpoint)...
The readme is currently still lacking various diagrams to illustrate the filesystem internals. I will add those ASAP...
So yes, my mission goals for @OS1337 hasn't changed in that I want it to be a #useable #SSH #terminal on a #1440kB #FDD image and having the option to expand from there on...
/home/
directory is a way to go - espechally when said drive is a fully-encrypted #Network-based #BlockStorage...