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

919 B

ocean

In-memory key value store that saves your data to disk using JSON.

Installation

go get git.akyoto.dev/go/ocean

Example

// 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

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