{"id":24074295,"url":"https://github.com/coder543/libcanister","last_synced_at":"2026-05-13T01:02:21.485Z","repository":{"id":4434227,"uuid":"5572378","full_name":"coder543/libcanister","owner":"coder543","description":"libcanister is the static library implementation of the Canister specification. It provides a friendly developer API to store, retrieve, and modify files in a compressed archive, with a primary focus on performance.","archived":false,"fork":false,"pushed_at":"2014-12-17T21:43:02.000Z","size":200,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-26T22:22:46.773Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coder543.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-27T14:46:08.000Z","updated_at":"2019-08-13T15:08:19.000Z","dependencies_parsed_at":"2022-08-27T07:20:27.620Z","dependency_job_id":null,"html_url":"https://github.com/coder543/libcanister","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coder543/libcanister","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder543%2Flibcanister","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder543%2Flibcanister/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder543%2Flibcanister/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder543%2Flibcanister/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coder543","download_url":"https://codeload.github.com/coder543/libcanister/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coder543%2Flibcanister/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32963174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T23:30:32.555Z","status":"ssl_error","status_checked_at":"2026-05-12T23:30:18.191Z","response_time":102,"last_error":"SSL_read: 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":[],"created_at":"2025-01-09T18:09:55.888Z","updated_at":"2026-05-13T01:02:21.465Z","avatar_url":"https://github.com/coder543.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"===============================\n          DESCRIPTION\n===============================\n\nCanister is a format designed to create a very fast archive format for large\nquantities of files. The fundamental principle is that each file is compressed by\nitself so that retrieval does not cost the time that the inflation of an entire\narchive would. Files can be individually handled as on a normal filesystem.\n\nAmong the benefits of a semi-compressed archive file system that can be modified in\nreal time with changes cached and flushed as hardware and software constraints desire,\nthere are also a handful of detriments.\n\nThe obvious one is that compression will not be nearly as effective as it would be if\nthe whole archive were being compressed as one. The more subtle problem is that\nediting a file in place will naturally generate fragmentation (as we do NOT rewrite\nthe whole archive just to edit one file). The fragmented sections will be repurposed\nwhen possible, but otherwise will sit empty unless a clone of the archive is made (\nwhereupon the fragments will be discarded) using the canister function that creates\nthe clone.\n\nCanisters are geared for speed in every aspect of their design, this speed comes at\nthe cost of marginal efficiency in other respects, but it should result in a net\nsavings of disk space, particularly in lightly edited canisters.\n\n===============================\n            HACKING\n===============================\n\nWhenever you make changes to the code, the shell script \"bar.sh\" is the\nmakefile-equivalent in use here. Just run bar.sh and it will generate and execute a\nnew binary for your testing. It automatically cleans up, so if you want to keep the\nbinary file, you'll have to edit the final line of the script. If you make the code better, I'd be happy to merge your changes into the master.\n\n===============================\n            CONTACT\n===============================\n\nThe primary developer behind the canister project is Josh Leverette. You may contact him on GMail, where his account is coder543.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoder543%2Flibcanister","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoder543%2Flibcanister","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoder543%2Flibcanister/lists"}