{"id":32307498,"url":"https://github.com/chestdb/chest","last_synced_at":"2026-02-21T02:39:56.807Z","repository":{"id":61972841,"uuid":"278322082","full_name":"chestdb/chest","owner":"chestdb","description":"A type-safe, pure-Dart in-memory database with amazing developer experience.","archived":false,"fork":false,"pushed_at":"2022-05-12T19:17:40.000Z","size":403,"stargazers_count":14,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-23T07:28:35.119Z","etag":null,"topics":["chests","dart","database"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chestdb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-07-09T09:32:41.000Z","updated_at":"2025-07-02T13:50:18.000Z","dependencies_parsed_at":"2022-10-24T13:15:32.971Z","dependency_job_id":null,"html_url":"https://github.com/chestdb/chest","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chestdb/chest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chestdb%2Fchest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chestdb%2Fchest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chestdb%2Fchest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chestdb%2Fchest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chestdb","download_url":"https://codeload.github.com/chestdb/chest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chestdb%2Fchest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29671794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"online","status_checked_at":"2026-02-21T02:00:07.432Z","response_time":107,"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":["chests","dart","database"],"created_at":"2025-10-23T07:18:55.980Z","updated_at":"2026-02-21T02:39:56.799Z","avatar_url":"https://github.com/chestdb.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"⚠️ This package is in its alpha stage. You can use it experimentally, but not in production yet. The binary format is not stable yet, so data might be lost. Stay tuned!\n\n---\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://chestdb.github.io/assets/logo.svg\" width=\"300px\" alt=\"Chest\" /\u003e\n\u003c/p\u003e\n\u003ch2 align=\"center\"\u003e A type-safe in-memory database with amazing developer experience.\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://chestdb.github.io\"\u003edocumentation\u003c/a\u003e · \u003ca href=\"https://chestdb.github.io/#/examples\"\u003eexamples\u003c/a\u003e · \u003ca href=\"https://chestdb.github.io/#/how-does-it-work\"\u003ehow it works\u003c/a\u003e · \u003ca href=\"https://chestdb.github.io/#/faq\"\u003eFAQ\u003c/a\u003e\n\u003c/p\u003e\n\n**What's a database?**\nIt's just a place where you can persist data beyond your app's lifetime. Chest offers exactly that: persistent variables called *chests*.\n\n```dart\nvar counter = Chest\u003cint\u003e('counter', ifNew: () =\u003e 0);\nawait counter.open();\nprint('This program ran ${counter.value} times.');\ncounter.value++;\nawait counter.close();\n```\n\n**But isn't treating databases like variables inefficient?**\nNot at all! To be clear, you don't need to read or save the whole object every time you make a change.\nChest allows you to only change part of a value, even fields marked with `final`.\n\n```dart\nvar me = Chest('me', ifNew: () =\u003e User());\nawait me.open();\nme.value; // Decodes the whole user.\nme.pet.value; // Only decodes the pet.\nme.pet.favoriteFood.color.value = Color.red; // Only changes the color.\n```\n\nThe important thing is that `me` is not a `User`, but a `Reference\u003cUser\u003e`.\nOnly when you use the `.value` getters or setters, you actually decode or change a subtree of the data.\n\nThis is especially handy if you're dealing with large maps:\n\n```dart\nvar users = Chest\u003cMap\u003cString, User\u003e\u003e('users', ifNew: () =\u003e {});\nawait users.open();\nvar marcel = users['marcel'].value; // Only decodes Marcel.\nusers['jonas'].value = User(...); // Only saves Jonas.\n```\n\n**Hang on. How does Chest know how to handle my types?**\nChest comes with its own encoding called *tape*. Some types already have built-in tapers (serializers for objects).\nYou can annotate your types with `@tape` and let Chest generate tapers automatically:\n\n```dart\n// Run `dart pub run build_runner build` in the command line.\npart 'this_file.g.dart';\n\n@tape\nclass Fruit {\n  final String name;\n  final Color color;\n}\n```\n\n\u003c!-- Tapers for types from other packages are also available to plug and play – for example, for tuple, Flutter, and TODO. --\u003e\n\n## Other perks\n\n- ❤️ **Amazing developer experience.** Just like you can inspect your program with Dart's DevTools, you can inspect, debug, and edit your database with ChestTools live in your browser.\n- 🎈 **Lightweight.** Chest is written in pure Dart and has no native dependencies. That means it works on any platform.\n\u003c!-- - ⚡ **Fast.** Chest is fast. Unlike most other in-memory databases, it also minimizes startup-time. And if you want to tweak performance, profiling and statistics are built-in. --\u003e\n\n## Intrigued? [Here's how to get started.](https://chestdb.github.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchestdb%2Fchest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchestdb%2Fchest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchestdb%2Fchest/lists"}