{"id":16702380,"url":"https://github.com/mnwa/reconengine","last_synced_at":"2025-08-25T10:05:10.528Z","repository":{"id":57602563,"uuid":"219749137","full_name":"Mnwa/ReconEngine","owner":"Mnwa","description":"Fast library realised lsm tree key value store.","archived":false,"fork":false,"pushed_at":"2019-12-02T17:50:04.000Z","size":53,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T02:26:07.974Z","etag":null,"topics":["database-engine","golang","lsm-tree","recon"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/Mnwa.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}},"created_at":"2019-11-05T13:16:02.000Z","updated_at":"2023-07-25T02:10:35.000Z","dependencies_parsed_at":"2022-09-26T20:00:50.252Z","dependency_job_id":null,"html_url":"https://github.com/Mnwa/ReconEngine","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mnwa%2FReconEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mnwa%2FReconEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mnwa%2FReconEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mnwa%2FReconEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mnwa","download_url":"https://codeload.github.com/Mnwa/ReconEngine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243544664,"owners_count":20308168,"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-engine","golang","lsm-tree","recon"],"created_at":"2024-10-12T19:04:28.284Z","updated_at":"2025-03-14T07:46:08.842Z","avatar_url":"https://github.com/Mnwa.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReconEngine\n[![Github all releases](https://img.shields.io/github/release/Mnwa/ReconEngine.svg)](https://github.com/Mnwa/ReconEngine/releases)\n[![Go Report Card](https://goreportcard.com/badge/Mnwa/ReconEngine)](https://goreportcard.com/report/Mnwa/ReconEngine)\n[![GitHub license](https://img.shields.io/github/license/Mnwa/ReconEngine.svg)](https://github.com/Mnwa/ReconEngine)\n[![Repository Size](https://img.shields.io/github/repo-size/Mnwa/ReconEngine.svg)](https://github.com/Mnwa/ReconEngine)\n\nIt is the storage engine realised the lsm tree structure, used by [ReconDB](https://github.com/Mnwa/Recon)\n\n## Usage\n\n### Interface MemStorage\n\n```go\n//Base mem interface, you can implement own realisation\ntype MemStorage interface {\n\tGet(key string) ([]byte, error)\n\tSet(key string, value []byte)\n\tDel(key string) error\n\tSync() error\n\tLen() int\n\tSsTable() SsTableStorage\n}\n```\n\n```go\n// Mem constructor, create structure realised MemStorage interface\n// ssTable argument may be a nil\n// Dir is the link to directory for data storing\nfunc NewMem(ssTable SsTableStorage, dir *string) MemStorage\n```\n\n### Interface SsTableStorage\n\n```go\n//Base SsTable interface, you can implement own realisation\ntype SsTableStorage interface {\n\tGet(key string) ([]byte, error)\n\tSet(key string, value []byte) error\n\tDel(key string) error\n\tCreatePartition() SsTablePartitionStorage\n\tClosePartition(partition SsTablePartitionStorage) error\n\tOpenPartition(createdAt int64) SsTablePartitionStorage\n\tRange(cb func(createdAt int64, partitionStorage SsTablePartitionStorage) bool)\n\tLen() int\n\tCloseAll() error\n\tMergeSort() error\n}\n```\n\n```go\n// SsTable constructor, create structure realised SsTableStorage interface\n// Dir is the link to directory for data storing\nfunc NewSsTable(dir *string) SsTableStorage\n```\n\n### Interface SsTablePartitionStorage\n\n```go\n//Base ss table partition interface, you can implement own realisation\ntype SsTablePartitionStorage interface {\n\tGet(key string) ([]byte, error)\n\tSet(key string, value []byte) error\n\tDel(key string) error\n\tRange(cb func(key string, value []byte) bool)\n\tKey() int64\n\tClose() error\n}\n```\n\n```go\n// SsTable partition constructor, create structure realised SsTablePartitionStorage interface\n// Dir is the link to directory for data storing\nfunc NewSStablePartition(createdAt int64, dir *string) SsTablePartitionStorage\n```\n\n### Errors\n```go\n// Error used when key don't exists\nvar KeyNotFoundErr = errors.New(\"can't found value by that key\")\n```\n```go\n// Error used when key removed\nvar KeyRemovedErr = errors.New(\"that key was removed\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnwa%2Freconengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnwa%2Freconengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnwa%2Freconengine/lists"}