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

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?