{"id":13672377,"url":"https://github.com/jonhoo/shortcut","last_synced_at":"2025-03-17T07:32:28.490Z","repository":{"id":9172720,"uuid":"60792318","full_name":"jonhoo/shortcut","owner":"jonhoo","description":"Rust crate providing an indexed, queryable column-based storage system","archived":false,"fork":false,"pushed_at":"2022-03-14T22:04:59.000Z","size":66,"stargazers_count":31,"open_issues_count":2,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-15T14:55:58.984Z","etag":null,"topics":["database","indexing","rust","storage"],"latest_commit_sha":null,"homepage":null,"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/jonhoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-09T17:10:54.000Z","updated_at":"2024-08-17T09:53:18.000Z","dependencies_parsed_at":"2022-08-07T05:00:39.824Z","dependency_job_id":null,"html_url":"https://github.com/jonhoo/shortcut","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Fshortcut","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Fshortcut/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Fshortcut/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonhoo%2Fshortcut/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonhoo","download_url":"https://codeload.github.com/jonhoo/shortcut/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852425,"owners_count":20358270,"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":["database","indexing","rust","storage"],"created_at":"2024-08-02T09:01:33.784Z","updated_at":"2025-03-17T07:32:28.235Z","avatar_url":"https://github.com/jonhoo.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# shortcut\n\n[![Crates.io](https://img.shields.io/crates/v/shortcut.svg)](https://crates.io/crates/shortcut)\n[![Documentation](https://docs.rs/shortcut/badge.svg)](https://docs.rs/shortcut/)\n[![Build Status](https://travis-ci.org/jonhoo/shortcut.svg?branch=master)](https://travis-ci.org/jonhoo/shortcut)\n\nThis crate provides an indexed, queryable column-based storage system.\n\nThe storage system is, fundamentally, row-based storage, where all rows have the same number of\ncolumns. All columns are the same \"type\", but given that they can be enum types, you can\neffectively use differently typed values. Data is stored in a `BTreeMap\u003cusize, Vec\u003cT\u003e\u003e`,\nwhere the outermost `BTreeMap` is dynamically sized (and may be re-allocated as more rows come\nin), whereas the innermost `Vec` is expected to never change. The map index is an\nautoincremented row identifier similar to the one used by SQLite:\nhttps://www.sqlite.org/lang_createtable.html#rowid.\n\nWhat makes this crate interesting is that it also allows you to place indices on columns for\nfast lookups. These indices are automatically updated whenever the dataset changes, so that\nqueries continue to return correct results. Indices should conform to either the\n`EqualityIndex` trait or the `RangeIndex` trait. As you would expect, the former allows\nspeeding up exact lookups, whereas the latter can also perform efficient range queries.\n\nQueries are performed over the dataset by calling `find` with a set of `Condition`s that will\nbe `AND`ed together. `OR` is currently not supported --- issue multiple quieries instead. Each\n`Condition` represents a value comparison against the value in a single column. The system\nautomatically picks what index to use to satisfy the query, using a heuristic based on the\nexpected number of rows returned for that column for each index.\n\n## Known limitations\n\n - The set of match operations is currently fairly limited.\n - The system currently provides an add/remove-only abstraction (i.e., no edit).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonhoo%2Fshortcut","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonhoo%2Fshortcut","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonhoo%2Fshortcut/lists"}