{"id":46744611,"url":"https://github.com/jubako/waj","last_synced_at":"2026-03-09T19:13:52.678Z","repository":{"id":214643434,"uuid":"660685678","full_name":"jubako/waj","owner":"jubako","description":"Web Archive Jubako : Store a static web site in an Jubako archive.","archived":false,"fork":false,"pushed_at":"2025-12-17T14:39:43.000Z","size":289,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T02:58:34.394Z","etag":null,"topics":["file-format","static-site","static-website","storage","website"],"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":"2023-06-30T15:25:21.000Z","updated_at":"2025-12-17T14:39:45.000Z","dependencies_parsed_at":"2024-02-23T16:29:30.138Z","dependency_job_id":null,"html_url":"https://github.com/jubako/waj","commit_stats":null,"previous_names":["jubako/waj"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jubako/waj","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fwaj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fwaj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fwaj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fwaj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jubako","download_url":"https://codeload.github.com/jubako/waj/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubako%2Fwaj/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30308917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["file-format","static-site","static-website","storage","website"],"created_at":"2026-03-09T19:13:51.899Z","updated_at":"2026-03-09T19:13:52.672Z","avatar_url":"https://github.com/jubako.png","language":"Rust","funding_links":["https://github.com/sponsors/jubako","https://liberapay.com/jubako"],"categories":[],"sub_categories":[],"readme":"What is waj\n===========\n\nWaj is a website container format based on the\n[jubako container format](https://github.com/jubako/jubako).\n\nIt allow you to create, and serve website archive.\n\nWaj (and Jubako) is in active development.\n\nIf you know zim file format, waj is pretty closed from it except few (important) features:\n- No book's metadata stored.\n- No title index.\n- No fulltext search.\n\n\nHow it works\n============\n\nJubako is a versatile container format, allowing to store data, compressed or not,\nin a structured way. It main advantage (apart from its versability) is\nthat is designed to allow quick retrieval of data fro the archive without\nneeding to uncompress the whole archive.\n\nWaj use the jubako format and create waj archive which:\n- Store content compressed.\n- Can do random access on the waj archive to allow quick serving to a request\n\nInstall waj\n===========\n\nBinaries for Windows, MacOS and Linux are available for [every release](https://github.com/jubako/waj/releases).\nYou can also install arx using Cargo:\n\n```\ncargo install waj\n```\n\nUse waj\n=======\n\nCreate an archive\n-----------------\n\nCreating an archive is simple :\n\nAssuming you have a directory `my_directory` containing a static website:\n\n```\nwaj create -o my_archive.waj -1 --strip-prefix \"my_directory/\" my_directory \n```\n\nIt will create one file : `my_archive.waj`, which will contains all content in the `my_directory` directory.\nAs we don't want `my_directory/` being part of the url's path, we removing it from the entries pathes.\n\n\nListing the content of an archive\n---------------------------------\n\nYou can list the content of the archive with:\n\n```\nwaj list my_archive.waj\n```\n\nServing the archive\n-------------------\n\n`waj` binary provides a small server.\n\n```\nwaj serve my_archive.waj localhost:8080\n```\n\nIt will serve the content in the archive.\nRouting is pretty simple:\n- It removes any trailing `/` in the request and search for it.\n- If there is a query string (`?`) remove it from the path and search for the new path.\n- If (original) path (without the `?`) ends with a `/`, search for  `\u003cpath\u003e + \"index.html\"`. \n\nFor example :\n- `/` -\u003e search for `` and  `index.html`\n- `/foo/?value=bar` -\u003e search for `foo/?value=bar`, `foo/`, `foo/index.html`\n\nIf your main page is not `index.html` (let's say `main`), you can create a redirection `` to `main` using\nthe `-m main` option at waj creation.\n\nZim2Waj\n-------\n\nThere is a small tool at https://github.com/jubako/zim2waj to convert any existing zim file into a waj.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubako%2Fwaj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjubako%2Fwaj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubako%2Fwaj/lists"}