{"id":23004458,"url":"https://github.com/marvin-j97/smoltable","last_synced_at":"2025-07-01T09:37:05.430Z","repository":{"id":210980628,"uuid":"727390721","full_name":"marvin-j97/smoltable","owner":"marvin-j97","description":"Bigtable but smol","archived":false,"fork":false,"pushed_at":"2025-06-23T23:06:47.000Z","size":2417,"stargazers_count":38,"open_issues_count":11,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-24T00:22:57.935Z","etag":null,"topics":["bigtable","lsm","lsm-tree","mit-license","nosql","rust","rust-lang","wide-column","wide-column-database"],"latest_commit_sha":null,"homepage":"https://marvin-j97.github.io/smoltable/","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/marvin-j97.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","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},"funding":{"custom":["https://www.buymeacoffee.com/marvin.j97"]}},"created_at":"2023-12-04T19:13:02.000Z","updated_at":"2025-06-23T16:23:42.000Z","dependencies_parsed_at":"2023-12-18T16:02:30.304Z","dependency_job_id":"d841c0e9-7689-458d-9b18-110b7b7fd447","html_url":"https://github.com/marvin-j97/smoltable","commit_stats":{"total_commits":180,"total_committers":3,"mean_commits":60.0,"dds":"0.17222222222222228","last_synced_commit":"29b826aa493be835ba193eb97907c35f24f5f45b"},"previous_names":["marvin-j97/smoltable"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marvin-j97/smoltable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marvin-j97%2Fsmoltable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marvin-j97%2Fsmoltable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marvin-j97%2Fsmoltable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marvin-j97%2Fsmoltable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marvin-j97","download_url":"https://codeload.github.com/marvin-j97/smoltable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marvin-j97%2Fsmoltable/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262937349,"owners_count":23387568,"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":["bigtable","lsm","lsm-tree","mit-license","nosql","rust","rust-lang","wide-column","wide-column-database"],"created_at":"2024-12-15T07:18:35.891Z","updated_at":"2025-07-01T09:37:05.396Z","avatar_url":"https://github.com/marvin-j97.png","language":"Rust","funding_links":["https://www.buymeacoffee.com/marvin.j97"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/logo.png\" height=\"96\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  Bigtable but smol.\n\u003c/p\u003e\n\n## About\n\n[![Documentation](https://img.shields.io/badge/Documentation_here-blue)](https://marvin-j97.github.io/smoltable/)\n[![CI](https://github.com/marvin-j97/smoltable/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/marvin-j97/smoltable/actions/workflows/test.yml)\n![MSRV](https://img.shields.io/badge/MSRV-1.75.0-blue)\n\nSmoltable is a tiny wide-column store heavily inspired by [Google Bigtable](https://static.googleusercontent.com/media/research.google.com/de//archive/bigtable-osdi06.pdf). It is implemented in Rust and is based on a [custom-written LSM storage engine](https://github.com/fjall-rs/fjall), also written in Rust. It can be accessed through a JSON REST API, with potential plans for future embeddability.\n\n## Data model\n\nIts data model is essentially the same as Bigtable’s, where:\n\n- each row is identified by its row key\n- the table's ordering is determined by the row key\n- a row can have arbitrarily many columns\n- columns are grouped into column families - each family is sorted by the column's name (column qualifier)\n\nEach row can have a different set of columns (schema-less). The table is sparse, so unused columns do not count into space usage. Each cell value may have multiple values sorted by time. Optionally, old versions can then be lazily \u0026 automatically deleted.\n\nIn Bigtable, stored values are byte blobs; Smoltable supports multiple data types out of the box:\n\n- string (UTF-8 encoded string)\n- boolean (like Byte, but is unmarshalled as boolean)\n- byte (unsigned integer, 1 byte)\n- i32 (signed integer, 4 bytes)\n- i64 (signed integer, 8 bytes)\n- f32 (floating point, 4 bytes)\n- f64 (floating point, 8 bytes)\n\nColumn families can be grouped into locality groups, which partition groups of column families into separate LSM-trees, increasing scan performance over those column families (e.g. OLAP-style queries over a specific column).\n\n## Compatibility\n\nSmoltable is not a replacement for Bigtable, nor is it wire-compatible with it. It is not distributed, but you probably could make it distributed. Then we would have `Bigsmoltable`. But it is a great, inexpensive way to learn about wide-column and single table data design.\n\n## License\n\nAll source code is (MIT OR Apache 2.0)-licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarvin-j97%2Fsmoltable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarvin-j97%2Fsmoltable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarvin-j97%2Fsmoltable/lists"}