Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lotusdblabs/lotusdb
Most advanced key-value database written in Go, extremely fast, compatible with LSM tree and B+ tree.
https://github.com/lotusdblabs/lotusdb
bptree database golang kv-store lsm-tree storage
Last synced: about 11 hours ago
JSON representation
Most advanced key-value database written in Go, extremely fast, compatible with LSM tree and B+ tree.
- Host: GitHub
- URL: https://github.com/lotusdblabs/lotusdb
- Owner: lotusdblabs
- License: apache-2.0
- Created: 2021-12-14T05:26:57.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-14T06:48:52.000Z (about 2 months ago)
- Last Synced: 2024-12-04T21:08:52.697Z (8 days ago)
- Topics: bptree, database, golang, kv-store, lsm-tree, storage
- Language: Go
- Homepage: https://lotusdblabs.github.io
- Size: 7.2 MB
- Stars: 2,088
- Watchers: 25
- Forks: 184
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - lotusdblabs/lotusdb - store,lsm-tree,storage pushed_at:2024-10 star:2.1k fork:0.2k Most advanced key-value database written in Go, extremely fast, compatible with LSM tree and B+ tree. (Go)
- awesome-parallel-blockchain - Developing
README
![lotusdb-logo.png](https://s2.loli.net/2024/05/18/Hkq6u2vhTgxbpEt.png)
## What is LotusDB
LotusDB is the most advanced key-value store written in Go, extremely fast, compatible with LSM tree and B+ tree, and optimization of badger and bbolt.
Key features:
* **Combine the advantages of LSM and B+ tree**
* **Fast read/write performance**
* **Much lower read and space amplification than typical LSM**## Design Overview
![](https://github.com/lotusdblabs/lotusdb/blob/main/resource/img/design-overview.png)
## Getting Started
```go
package mainimport (
"github.com/lotusdblabs/lotusdb/v2"
)func main() {
// specify the options
options := lotusdb.DefaultOptions
options.DirPath = "/tmp/lotusdb_basic"// open a database
db, err := lotusdb.Open(options)
if err != nil {
panic(err)
}
defer func() {
_ = db.Close()
}()// put a key
err = db.Put([]byte("name"), []byte("lotusdb"), nil)
if err != nil {
panic(err)
}// get a key
val, err := db.Get([]byte("name"))
if err != nil {
panic(err)
}
println(string(val))// delete a key
err = db.Delete([]byte("name"), nil)
if err != nil {
panic(err)
}
}
```
see the [examples](https://github.com/lotusdblabs/lotusdb/tree/main/examples) for more details.## Community
Welcome to join the [Slack channel](https://join.slack.com/t/rosedblabs/shared_invite/zt-19oj8ecqb-V02ycMV0BH1~Tn6tfeTz6A) and [Discussions](https://github.com/lotusdblabs/lotusdb/discussions) to connect with LotusDB team members and other users.
If you are a Chinese user, you are also welcome to join our WeChat group, scan the QR code and you will be invited:
| |
| ------------------------------------------------------------ |