{"id":15111530,"url":"https://github.com/ckampfe/bic","last_synced_at":"2026-01-30T02:42:47.708Z","repository":{"id":233217060,"uuid":"786304680","full_name":"ckampfe/bic","owner":"ckampfe","description":"An implementation of Bitcask","archived":false,"fork":false,"pushed_at":"2024-04-24T02:30:53.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T14:49:30.138Z","etag":null,"topics":["bitcask","databases","elixir","erlang","storage-engine"],"latest_commit_sha":null,"homepage":"https://riak.com/assets/bitcask-intro.pdf","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ckampfe.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-14T03:25:28.000Z","updated_at":"2024-04-24T02:30:55.000Z","dependencies_parsed_at":"2024-04-24T03:44:47.975Z","dependency_job_id":null,"html_url":"https://github.com/ckampfe/bic","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"d82b4725c3fe67f983aaf29e2f8020edcc5871da"},"previous_names":["ckampfe/bic"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckampfe%2Fbic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckampfe%2Fbic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckampfe%2Fbic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckampfe%2Fbic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ckampfe","download_url":"https://codeload.github.com/ckampfe/bic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378089,"owners_count":20929292,"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","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":["bitcask","databases","elixir","erlang","storage-engine"],"created_at":"2024-09-26T00:20:54.354Z","updated_at":"2026-01-30T02:42:47.644Z","avatar_url":"https://github.com/ckampfe.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bic\n\nAn implementation of [Bitcask](https://en.wikipedia.org/wiki/Bitcask).\n\nSee [the paper](https://riak.com/assets/bitcask-intro.pdf).\n\n## Todo\n\n- [x] create databases\n- [x] open existing databases\n- [x] merge database files\n- [x] put keys\n- [x] fetch keys\n- [x] delete keys\n- [x] migrate to new file when max file size reached\n- [ ] error recovery when hashes do not match\n- [ ] todo examples on public fns\n- [x] some kind of lock to prevent stale reads during merge\n- [ ] investigate mechanisms for what to do if keydir is locked during merge\n- [ ] the existing \"lock\" is only valid at the moment it is returned.\n      it has no lexical scope or anything like that,\n      meaning that any of the subsequent file operations\n      could be invalid and unsafe. need to figure out some way to manage this.\n\n## Installation\n\nIf [available in Hex](https://hex.pm/docs/publish), the package can be installed\nby adding `bic` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:bic, \"~\u003e 0.1.0\"}\n  ]\nend\n```\n\nDocumentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)\nand published on [HexDocs](https://hexdocs.pm). Once published, the docs can\nbe found at \u003chttps://hexdocs.pm/bic\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckampfe%2Fbic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fckampfe%2Fbic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckampfe%2Fbic/lists"}