{"id":33939363,"url":"https://github.com/jubako/jubako","last_synced_at":"2026-04-05T01:31:34.474Z","repository":{"id":142351745,"uuid":"575816160","full_name":"jubako/jubako","owner":"jubako","description":"The reference implementation of Jubako","archived":false,"fork":false,"pushed_at":"2025-12-14T22:00:57.000Z","size":1455,"stargazers_count":19,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-17T10:49:42.588Z","etag":null,"topics":["compression","container","generic","rust","storage"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jubako.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["jubako"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"jubako","issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-12-08T11:11:59.000Z","updated_at":"2025-12-14T22:01:01.000Z","dependencies_parsed_at":"2023-10-10T16:54:43.009Z","dependency_job_id":"19d7e3eb-b888-49bd-92d4-45b113fd9352","html_url":"https://github.com/jubako/jubako","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/jubako/jubako","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fjubako","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fjubako/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fjubako/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fjubako/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jubako","download_url":"https://codeload.github.com/jubako/jubako/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fjubako/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31421869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T00:25:07.052Z","status":"ssl_error","status_checked_at":"2026-04-05T00:25:05.923Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compression","container","generic","rust","storage"],"created_at":"2025-12-12T15:26:10.842Z","updated_at":"2026-04-05T01:31:34.466Z","avatar_url":"https://github.com/jubako.png","language":"Rust","funding_links":["https://github.com/sponsors/jubako","https://liberapay.com/jubako","https://liberapay.com/jubako/donate","https://buymeacoffee.com/jubako"],"categories":[],"sub_categories":[],"readme":"# Jubako\n\nJubako is a new, open, efficient, and flexible container format designed to store and manage diverse data types, including text or binary files.\nIt emphasizes speed and efficiency, offering fast compression and decompression with minimal overhead.\nThis makes it ideal for managing large datasets and facilitating efficient distribution.\n\n## What is Jubako ?\n\nJūbako is the traditional lunch box used in Japan to store Bentos.\nIt is a small box that stores food in small compartments.\n\nJubako is a container format to store things in organized manner.\nIt is composed of packs that can be composed as needed.\n\nIt is container format extensible to fulfill specific need.\nAs any container format it allow to store content in the container.\nIt has some specificity :\n\n- Content can be compressed or not. Decide whether the content is compressed or not is made\n  at content level.\n- Direct access. You don't need to decompress the whole archive on the file system or in\n  memory to access a content.\n- Content is accessed using one or several entries stored in indexes.\n- The metadata (stored in the entries) are not defined.\n  Metadata are stored following a schema each application must define.\n- Each entries can point to one content (basic use case) but it is not necessary.\n  An entry can point to several contents or none.\n- The content can come in different variants. For example, images can be in low and high\n  resolution.\n- Jubako can be incremental. It is possible to create archive containing only the\n  difference between an existing archive and the content you want to store. (To implement)\n- Content can be put in different packs inside a container. Packs may be missing or\n  reused in another Jubako container.\n\n\n## What Jubako is not ?\n\nJubako is a not file format.\n\nAs xml, Jubako is a format describing how to store content and how it is\nstructured. It doesn't specify what is stored and the hierarchy between those content.\n\nThe classical usage Jubako is to be used as base structure for a real life container.\n\n## Using Jubako\n\nJubako library is the low level library to read and write Jubako container.\nJubako format is somehow a metaformat, each user (arx, waj, you...) of Jubako has to\nspecify its own format based on Jubako.\n\nSo, the classic use case is to create a library on top of jubako to wrap jubako\nstructure and provide high level implementation.\n\nSee [examples](examples) to see how to use it.\n\nYou can have a look to [arx](https://github.com/jubako/arx) which is files\narchive based on Jubako or [waj](https://github.com/jubako/waj) to store website.\n\nBut as all Jubako files are in Jubako format. So waj, arx or anything else are Jubako files.\nJubako provide some tools to manipulate them in a generic way.\n\nYou can install thoses tools using:\n`cargo install jubako --features build_bin`\n\n**Note:** The `build_bin` feature is required for the `jbk` command-line interface.\nIf these features are not included in the installation, you'll only have access to the Jubako library, not the CLI tools.\n\n\n## Usage Examples\n\n### CLI Tool (`jbk`)\n\nAfter installing with the `build_bin` feature, the `jbk` command-line tool becomes available:\n\n* Checks the integrity of a Jubako archive:\n\n   ```bash\n   jbk check my_archive.jbk\n   ```\n\n* Manages location of packs within a Jubako container.\n\n   Packs may be stored in one file or separatly. Locations of packs are stored in the manifest pack and can be modified:\n\n   ```bash\n   jbk locate my_archive.jbk a1b2c3d4-e5f6-7890-1234-567890abcdef # print location of pack `a1b2c3d4-e5f6-7890-1234-567890abcdef`\n   jbk locate my_archive.jbk a1b2c3d4-e5f6-7890-1234-567890abcdef new/path/to/pack.jbkc # change location of pack `a1b2c3d4-e5f6-7890-1234-567890abcdef`\n   ```\n\n* Explores internal structures of a Jubako archive.\n\n    ```bash\n    jbk explore my_archive.jbk \u003ckey_part\u003e::\u003ckey_part\u003e::...\n    ```\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## Sponsoring\n\nI ([@mgautierfr](https://github.com/mgautierfr)) am a freelance developer. All jubako projects are created in my free time, which competes with my paid work.\nIf you want me to be able to spend more time on Jubako projects, please consider [sponsoring me](https://github.com/sponsors/jubako).\nYou can also donate on [liberapay](https://liberapay.com/jubako/donate) or [buy me a coffee](https://buymeacoffee.com/jubako).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE-MIT](LICENSE-MIT) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubako%2Fjubako","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjubako%2Fjubako","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubako%2Fjubako/lists"}