wader/gormstore

GORM backend for gorilla sessions

Go

72

122 commits

updated Jul 24, 2026

See the code

README

GORM backend for gorilla sessions

For gorm v2 use:

import "github.com/wader/gormstore/v2"

For gorm v1 use:

import "github.com/wader/gormstore"

Documentation

https://pkg.go.dev/github.com/wader/gormstore?tab=doc

Example

// initialize and setup cleanup
store := gormstore.New(gorm.Open(...), []byte("secret"))
// db cleanup every hour
// close quit channel to stop cleanup
quit := make(chan struct{})
go store.PeriodicCleanup(1*time.Hour, quit)
// in HTTP handler
func handlerFunc(w http.ResponseWriter, r *http.Request) {
  session, err := store.Get(r, "session")
  session.Values["user_id"] = 123
  store.Save(r, w, session)
  http.Error(w, "", http.StatusOK)
}

For more details see gormstore documentation.

Testing

Just sqlite3 tests:

go test

All databases using docker:

./test

If docker is not local (docker-machine etc):

DOCKER_IP=$(docker-machine ip dev) ./test

License

gormstore is licensed under the MIT license. See LICENSE for the full license text.

wader/gormstore

GORM backend for gorilla sessions

Go

72

122 commits

updated Jul 24, 2026

See the code

README

GORM backend for gorilla sessions

For gorm v2 use:

import "github.com/wader/gormstore/v2"

For gorm v1 use:

import "github.com/wader/gormstore"

Documentation

https://pkg.go.dev/github.com/wader/gormstore?tab=doc

Example

// initialize and setup cleanup
store := gormstore.New(gorm.Open(...), []byte("secret"))
// db cleanup every hour
// close quit channel to stop cleanup
quit := make(chan struct{})
go store.PeriodicCleanup(1*time.Hour, quit)
// in HTTP handler
func handlerFunc(w http.ResponseWriter, r *http.Request) {
  session, err := store.Get(r, "session")
  session.Values["user_id"] = 123
  store.Save(r, w, session)
  http.Error(w, "", http.StatusOK)
}

For more details see gormstore documentation.

Testing

Just sqlite3 tests:

go test

All databases using docker:

./test

If docker is not local (docker-machine etc):

DOCKER_IP=$(docker-machine ip dev) ./test

License

gormstore is licensed under the MIT license. See LICENSE for the full license text.

Languages

Go

92.4%

Shell

7.6%