Despite its title, this is not a road map, this is a list of thing I want to implement. No priority intended. Things may even never be implemented.
Jubako Format
Content Deduplication
Today, Arx support content deduplication at file level. If two files have the same content, they are pointing to the same blob.
I would like to extend the Jubako format to support full content deduplication at block level.
True Random Access
Jubako stores in content compressed by cluster. Accessing a content means that we have to decompress only the corresponding cluster. But we still have to decompress the whole cluster.
Recent compression algorithms support dictionary compression. It would allow us to compress content individually (or even by block) while keeping good compression ratio.
Delta/Patch Between Containers
We need a way to send only difference between containers instead of sending the whole container to users.
Signing and Ciphering Content
No reason to not implement it.
Jubako Implementation
First Class Windows and Macos Support
Jubako has been mainly developed on Linux. We need a true Windows and MacOs support.
Reuse of Packs in Another Container
Sharing data is a good way to reduce data consumption.
Remote Access
Jubako is designed to reduce read on the file system. We could directly read content in a HTTP server thanks to range requests.
Integration With IPFS
Jubako is designed around blocks. IPFS stores chunks of data in a DAGs. With the right chunker, we can directly store any Jubako container in IPFS
Async API
Current API is sync. We need a async version.
Wrappers in Other Languages
Jubako, Arx, Waj and other are implemented in rust.
We need wrapper in other languages.
Kernel Module
Arx mounting is implemented through Fuse. Should we implement a kernel module to mount arx archive?
Wasm Iupport
Rust can be compiled to wasm. Add native support for Jubako container in the browser.
Arx
Incremental Arx
If we reuse pack of previous Arx, we can have incremental Arx for free.
Graphical Interface
Not all people speaks command line
Updatable Arx Archive and Read-Write Archive Mount
An incremental archive with a pack we update is a updatable archive.
Waj
Adding Support for Full Text Search
Tantivy is a good candidate. And it provides an interface which should integrate well with Jubako implementation.
Browser Extensions to Save Web Pages
A web page is a really small website. Let's save it in a Waj archive.
Applications
Application Packaging
Arx archive can be mounted. What if we package application using arx archive and mount the archive instead of installing it? (Yes, appimage already exists)
Jubako containers are compoundable, we can reuse pack from other containers. Dependencies management can use this to avoid content deduplication.
Integration With Docker
Docker image are mostly a composition of tar archive extracted on file system. We could have Jubako containers we mount on demand.
Backup Format
Let's use Jubako/Arx to do backup.
Gemini Container
Gemini is a nice minimalist protocol. Jubako can be used to store (and serve) Gemeni capsule.
Create a Binary Resources Container
Applications always need some data (images, translations...) Jubako container are already embedable. Applications could store their assets in a Jubako container.
Python Packaging
Packaging python application always have been a bit tricky. Could we change that?