{"id":16376556,"url":"https://github.com/killercup/static-filez","last_synced_at":"2025-07-29T07:31:30.191Z","repository":{"id":57668560,"uuid":"152591938","full_name":"killercup/static-filez","owner":"killercup","description":"Build compressed archives for static files and serve them over HTTP","archived":false,"fork":false,"pushed_at":"2019-01-05T16:25:55.000Z","size":113,"stargazers_count":36,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-10T19:57:41.602Z","etag":null,"topics":["archiving","http","rust","static-server"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/killercup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-11T12:56:31.000Z","updated_at":"2024-07-01T06:16:49.000Z","dependencies_parsed_at":"2022-08-27T01:41:02.744Z","dependency_job_id":null,"html_url":"https://github.com/killercup/static-filez","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/killercup/static-filez","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killercup%2Fstatic-filez","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killercup%2Fstatic-filez/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killercup%2Fstatic-filez/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killercup%2Fstatic-filez/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/killercup","download_url":"https://codeload.github.com/killercup/static-filez/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/killercup%2Fstatic-filez/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267645913,"owners_count":24120892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["archiving","http","rust","static-server"],"created_at":"2024-10-11T03:25:08.045Z","updated_at":"2025-07-29T07:31:29.860Z","avatar_url":"https://github.com/killercup.png","language":"Rust","readme":"# Static FileZ\n\n\u003e **Build compressed archives for static files and serve them over HTTP**\n\n[![Build Status](https://travis-ci.com/killercup/static-filez.svg?branch=master)](https://travis-ci.com/killercup/static-filez)\n[![crates.io](https://img.shields.io/crates/v/static-filez.svg)](https://crates.io/crates/static-filez)\n[![docs](https://img.shields.io/badge/api_docs-latest-blue.svg)](https://docs.rs/static-filez)\n\n\n## What and Why\n\nSay you want to store a huge number of very small files\nthat you are only viewing in a browser.\nFor example: You are using `rustdoc` to render the documentation of a library.\nWithout much work you'll end up with about 100k files that are about 10kB each.\nAs it turns out, this number of small files is very annoying for any kind of file system performance:\nBest case: making copies/backups is slow.\nWorst case: You're using an anti virus software and it takes ages.\n\nExcept for convenience when implementing software,\nand people being used to having folders of files they can look into,\nthere is little reason to store these files individually.\nIndeed, it will save much space and time to store files like these in compressed form in one continuous archive.\nAll that is needed to make this work is\nsome well-designed and discoverable software.\n\n_static-filez_ is a prototype for that piece of software.\n\n## Installation\n\n## Download  a binary\n\nThere are pre-compiled binaries that you can find on the [releases page](https://github.com/killercup/static-filez/releases).\n\nAlternatively, install it like this:\n\n```bash\ncurl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git killercup/static-filez\n```\n\n### Compile manually\n\nMake sure you have Rust and Cargo installed.\nThen, run\n`cargo install --git https://github.com/killercup/static-filez`.\n\nAlternatively,\nclone this repository and run\n`cargo install --path .`.\n\n## Usage\n\n1. Build an archive (and index) from a directory: `static-filez build target/doc/ ./docs.archive`\n2. Start a HTTP server that serves the files in the archive: `static-filez serve -p 3000 docs.archive`\n3. Open a browser and see your files: `http://127.0.0.1:3000/regex/`\n   (`regex` is an example for a great documentation page you should read)\n\n## Architecture\n\nCurrently, _static-filez_ will generate two files:\nAn `.index` file, and an `.archive` file.\n\nThe index is a specialized data structure\nthat maps paths to their content in the archive.\n\nThe archive file contains the (compressed) content of your files.\nThe server is implemented in a way that it can serve the compressed content directly,\nwith no need to ever look at the (potentially much larger) original decompressed data.\n(This works by using the HTTP Content-Encoding header, if you are curios.)\n\nYou can read more about the structure of the files in\n[this issue](https://github.com/killercup/static-filez/issues/1),\nor, of course, the source.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally\nsubmitted for inclusion in the work by you, as defined in the Apache-2.0\nlicense, shall be dual licensed as above, without any additional terms or\nconditions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkillercup%2Fstatic-filez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkillercup%2Fstatic-filez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkillercup%2Fstatic-filez/lists"}