{"id":16157883,"url":"https://github.com/mrxiaozhuox/dorea","last_synced_at":"2025-04-12T22:29:58.713Z","repository":{"id":39782037,"uuid":"377193636","full_name":"mrxiaozhuox/dorea","owner":"mrxiaozhuox","description":"A Key-Value data storage system. - [ This is a practice program ]","archived":false,"fork":false,"pushed_at":"2025-01-22T04:41:54.000Z","size":438,"stargazers_count":114,"open_issues_count":0,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T01:57:16.784Z","etag":null,"topics":["database","rust","storage"],"latest_commit_sha":null,"homepage":"https://dorea.mrxzx.info","language":"Rust","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/mrxiaozhuox.png","metadata":{"files":{"readme":"README.CN.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-15T14:34:34.000Z","updated_at":"2025-01-22T04:41:57.000Z","dependencies_parsed_at":"2024-01-13T04:12:02.709Z","dependency_job_id":"32b3f47d-75f1-4550-82bf-51e30fd1b025","html_url":"https://github.com/mrxiaozhuox/dorea","commit_stats":{"total_commits":331,"total_committers":3,"mean_commits":"110.33333333333333","dds":"0.29003021148036257","last_synced_commit":"2c897cf1de557525a3d9b3ef12fa30154a49b6b4"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrxiaozhuox%2Fdorea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrxiaozhuox%2Fdorea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrxiaozhuox%2Fdorea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrxiaozhuox%2Fdorea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrxiaozhuox","download_url":"https://codeload.github.com/mrxiaozhuox/dorea/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248639488,"owners_count":21137851,"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","rust","storage"],"created_at":"2024-10-10T01:51:01.758Z","updated_at":"2025-04-12T22:29:58.690Z","avatar_url":"https://github.com/mrxiaozhuox.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003ch2 align=\"center\"\u003eDorea DB 🛰\u003c/h2\u003e\n\t\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/mrxiaozhuox/Dorea/actions\"\u003e\n    \t\u003cimg alt=\"Build\" src=\"https://img.shields.io/github/workflow/status/mrxiaozhuox/Dorea/Rust?style=for-the-badge\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/mrxiaozhuox/Dorea/blob/master/LICENSE\"\u003e\n      \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/mrxiaozhuox/Dorea?style=for-the-badge\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/mrxiaozhuox/Dorea/blob/master/LICENSE\"\u003e\n\t\t\t\u003cimg alt=\"Code\" src=\"https://img.shields.io/github/languages/code-size/mrxiaozhuox/Dorea?style=for-the-badge\"\u003e\n    \u003c/a\u003e\n\t\u003c/p\u003e\n\t\u003cp align=\"center\"\u003e\n    \u003cstrong\u003eDorea 是一款 Key - Value 数据存储系统。它基于 Bitcask 存储模型实现！\u003c/strong\u003e\n\t\u003c/p\u003e\n\t\u003cp align=\"center\"\u003e\n    \u003ca href=\"http://dorea.mrxzx.info/\"\u003e文档\u003c/a\u003e | \n    \u003ca href=\"https://crates.io/crates/dorea\"\u003eCrates.io\u003c/a\u003e | \n    \u003ca href=\"https://docs.rs/dorea/\"\u003eCore 文档\u003c/a\u003e\n\t\u003c/p\u003e\n\t\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/mrxiaozhuox/dorea/blob/master/README.CN.md\"\u003e简体中文\u003c/a\u003e | \n    \u003ca href=\"https://github.com/mrxiaozhuox/dorea/blob/master/README.md\"\u003eEnglish\u003c/a\u003e\n\t\u003c/p\u003e\n\u003c/p\u003e\n\n\n\n## 功能\n\n- Dorea 插件管理器: [Github Repo](https://github.com/doreadb/dorea-plugin-loader)\n\n### 数据类型\n\n`Dorea` 将会实现基本的数据类型与复合类型：\n\n- String 基础字符串\n- Number 数字类型 - 使用 `float 64` 存储\n- Boolean 布尔值\n- Binary 二进制数据\n- List \\\u003cDataValue\u003e 列表（复合），可将任何数据类型作为元素插入\n- Dict \\\u003cString, DataValue\u003e 字典（复合），可将任何数据类型作为元素插入\n- Tuple \\\u003cDataValue, DataValue\u003e 元组（复合），可将任何数据类型作为元素插入\n\n\n\n## 存储模型\n\n`Dorea` 基于 Bitcask 存储模型实现，`bitcask` 是一种 *日志型* 的存储模型。\n\n所有 **添加、更新、删除** 操作都是以追加的方式实现的。\n\n```\nkey: foo | value: \"bar\" | timestamp: 1626470590043 # 插入了一条新的数据\nkey: foo | value: \"new\" | timestamp: 1626470590043 # 更新了数据（不会删除上面的插入）\nkey: foo | value:  none | timestamp: 1626470590043 # 删除了数据（也不会影响到上面的插入与更新）\n```\n\n当一个存储文件到达一个最大容量时，则将其归档，并新建一个写入文件。\n\n### 索引加载\n\n在 `Bitcask` 中，索引会被一次性全部加载到内存中。\n\n但是在 `Dorea` 中，你需要配置默认自动加载的 `Group` ，当有程序切换 `Group` 时，才去加载相应的索引。\n\n**PS: ** 在数据量不大（\u003c 100w）时，这种加载的时间成本都是可以忽略不计的。 \n\n### Merge 操作\n\n程序会每隔一段时间对已归档的文件进行整理（将多余的数据删除），让其只保存最后一次的操作信息。\n\n\n\n## Core API\n\n`Dorea-core` 开放了部分内部功能供开发者调用。\n\n- Server - 服务端（没啥可自定义的，就是单纯一个启动函数）\n- Client - 客户端 （对于基本的操作都封装成了函数）\n- Processor - 处理程序（包含数据解析器、协议解析器等）\n\n## 部分截图\n\n![](https://upc.cloud.wwsg18.com/uploads%2F2021%2F08%2F26%2F1_5PJTELnd_%E6%B7%B1%E5%BA%A6%E6%88%AA%E5%9B%BE_20210826191636.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxiaozhuox%2Fdorea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrxiaozhuox%2Fdorea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxiaozhuox%2Fdorea/lists"}