Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
embeddable persistent object store
Go
branch: master
Failed to load latest commit information.
epos goleveldb also requires snappy-go.
.travis.yml huh? travis-ci acts up weird.
LICENSE add LICENSE file.
README.md
backends.go
collection.go generalize code regarding storage backend; add function to allow user…
condition.go go fmt
database.go add missing epos.Expression call to documentation.
diskv_backend.go generalize code regarding storage backend; add function to allow user…
expression.go document Expression.
expression_test.go go fmt.
index.go go fmt
index_test.go merge leveldb support and store storage backend type in database.
leveldb_backend.go generalize code regarding storage backend; add function to allow user…
query.go add tests for queries.
query_test.go
result.go goleveldb also requires snappy-go.
store_test.go re-enable diskv insert benchmark.

README.md

README for epos

Build Status

Introduction

epos is a embeddable persistent object store, written in Go. It is meant to store, retrieve, query and delete Go objects to a local file store. In this respect, it is NoSQL database, but it only works on local files and is embeddable into existing Go programs, so it can be thought of as the SQLite of NoSQL databases.

Here is a very basic overview how to use epos:

// open/create database:
db, err := epos.OpenDatabase("foo.db", epos.STORAGE_AUTO) // also available: STORAGE_DISKV, STORAGE_LEVELDB
// insert item:
id, err = db.Coll("users").Insert(new_user)
// update item:
err = db.Coll("users").Update(id, updated_user)
// index fields:
err = db.Coll("users").AddIndex("login")
// query items:
result, err = db.Coll("users").Query(epos.Expression("(eq username foobar)"))
for result.Next(&id, &data) {
    // handle data
}

License

See file LICENSE for details.

API Documentation

You can find the latest API documentation here: http://godoc.org/github.com/akrennmair/epos

Author

Andreas Krennmair ak@synflood.at

Something went wrong with that request. Please try again.