Been a while since I've actually
advertised an update for this, but there's some new functionality in 1.6.0 that might be of use about the place.
Personally I've gotten used to developing code in SSP, where I've configured ComputerCraft to up drive sizes considerably. Playing online recently I hence felt severely cramped by the default allowance of a singular manufacturer's megabyte, and turned to BBPack to alleviate the strain.
Loading BBPack (either by simply running it or by loading it as an API) now implements an fs wrapper. By default, the only visible change to your system is the addition of a RAM drive (dubbed "ram", accessible from the root of your HDD) - you can stick pretty much whatever you like in there, although as nothing within it is actually written to disk, all its content will be lost should your system shut down.
BBPack's wrapper can implement additional features via a few commands:
bbpack compress / bbpack.fileSys(true)
These commands iterate through all content on your computer's HDD and compresses it. Files compressed in this manner take on an additional .bbp extension, which is hidden from you so long as BBPack is loaded (the only visible effect is hence a reduction in filesize). Additional files written to your drive in future will also be automatically compressed, although files on external drives are unaffected. In practise I find this increases the capacity of a system by about 3x on average.
startup, .settings, bbpack and its config file (.bbpack.cfg) are unaffected by compression, as are any GIF files.
bbpack decompress / bbpack.fileSys(false)
Reverts filesystem compression, decompressing all files. May leave some files compressed if it runs out of space during the decompression process, in which case the command line version will print a report, or the function version will return false.
bbpack cluster <clusterName>
The system will become a NAS, opening attached modems for rednet usage and granting other systems access to its storage. Multiple systems configured to join the same cluster will share their space, allowing for simple storage of much more data than a single system could hold.
bbpack mount <clusterName> / bbpack.fileSys(<clusterName>)
Opens attached modems for rednet usage and mounts the specified cluster under a local directory of the same name. A cluster can be demounted by rm / fs.delete()ing it. Cluster-stored content is compressed regardless as to the setting for the local drive. Clusters may be mounted by multiple systems at a time. If a server system is added to / removed from a cluster, client systems must be instructed to remount that cluster.
bbpack mount <URL> <path> / bbpack.fileSys(<URL>, <path>)
Mounts the specified web path as a local file, without actually storing it on your local drive. Only handles single files at a time. The mount can be removed by rm / fs.delete()ing it, but is otherwise treated as read-only.
BBPack uses .bbpack.cfg to remember mounts, and to track whether local filesystem compression is active. It'll automatically recall this information when reloaded (eg after a reboot). It's recommended to add os.loadAPI("bbpack") to the very top of your startup file should you wish a given system to use the compression or mounting features. Cluster servers need only shell.run("bbpack cluster <clusterName>").
If BBPack is configured to mount any cluster servers, it'll automatically open any attached modems whenever it's loaded.
Reading from / writing to locally compressed files, or files in a cluster, will cause your system to yield. In particular, shell autocomplete becomes quite slow while browsing clusters - consider
disabling autocomplete if this is a problem for you.
Compressed files are difficult to access via external editors. If you're looking for more storage in a single-player environment, you may be better off increasing filesystem sizes within
ComputerCraft.cfg.
Edited by Bomb Bloke, 28 July 2017 - 01:33 PM.