2023-07-08 22:10:02 +02:00

53 lines
919 B
Markdown

# ocean
In-memory key value store that saves your data to disk using JSON.
## Installation
```shell
go get git.akyoto.dev/go/ocean
```
## Example
```go
// User type
type User struct { Name string }
// Create a new collection
users := ocean.New[User]("todolist")
// Store some data
users.Set("1", &User{Name: "User 1"})
users.Set("2", &User{Name: "User 2"})
users.Set("3", &User{Name: "User 3"})
// Read from memory
first, err := users.Get("1")
// Iterate over all users
for user := range users.All() {
fmt.Println(user.Name)
}
```
Data will be stored in `~/.ocean/todolist/User.dat`.
## Example file: User.dat
```json
1
{"name":"User 1"}
2
{"name":"User 2"}
3
{"name":"User 3"}
```
## Usage
1. Create all the collections you need at the start
2. `defer users.Sync()` to ensure queued writes will be handled on exit
3. Start your web server
4. Retrieve and update your data using `Get` and `Set` calls