Files
supermarket-api/pkg/ramdb/README.md
T
2021-06-20 18:16:33 -04:00

45 lines
891 B
Markdown

# ramdb
RamDB is an implementation of an in-memory database with a simple API for selecting and querying the database. It uses b-trees as the underlying storage mechanism which allows fast searches and mutations.
All database commands are safe for concurrent operations.
## Example
```go
// Create database and table.
db := ramdb.NewDatabase()
_ = db.CreateTable("hotdogs", "frank_id")
// Mm, hotdogs.
type HotDog struct {
FrankId string
Condiments []string
Brat bool
}
indog := HotDog{
FrankId: "1",
Condiments: []string{
"kraut",
"mustard",
},
Brat: true,
}
// Create a new Record and insert.
rec, _ := ramdb.NewRecord("1", "frank_id", indog)
_ = db.From("hotdogs").Insert(rec)
// Query data out.
ro, _ := db.From("hotdogs").Get("frank_id", "1")
var outdog HotDog
_ = ro.Deserialize(&outdog)
fmt.Printf("%+v\n", outdog)
// &HotDog{"1" ["kraut", "mustard"] true}
```