Golang Database
ObjectBox Go is a lean NoSQL Golang database for persisting objects. It is designed to give you high performance and easy native Go APIs on any POSIX-system and embedded devices.
Last updated
Was this helpful?
ObjectBox Go is a lean NoSQL Golang database for persisting objects. It is designed to give you high performance and easy native Go APIs on any POSIX-system and embedded devices.
Last updated
Was this helpful?
Your opinion matters to us! To make ObjectBox better for our users, we have set up an . Please do fill this in (it only takes 2 minutes). Every response is highly appreciated. To rate this documentation, you can use the "Was this page helpful?" smiley at the end of each page.
Otherwise, feel free to open an or send us your comments to contact[at]objectbox.io - Thank you! And if you like what you see, we also appreciate a shout-out...
Update ObjectBox Generator to 4.0.0
Update objectbox-c to v4.2.0
Sync: JWT credentials/authentication
Sync: Allow clients to pass multiple SyncCredentials for authentication
Fixed a version check that prevented using newer ObjectBox core version
Dropped support for Go 1.11 (this version was tested with Go versions 1.12 - 1.24)
Fixed a regression for 32-bit platforms that could result in crashes
Update FlatBuffers to v23.5.26
Update ObjectBox Generator to 0.14
In-memory databases (provide a "directory" option like "memory:" + DB name)
Fix leaks for Box functions taking multiple IDs
Improved version check for the dynamically loaded C lib
Update to objectbox-c v0.15.1 which contains fixes and minor performance improvements
update objectbox-c to v0.14.0
add TimeSeries model definition support using id-companion
and date-nano
annotations
avoid time.Duration.Milliseconds()
not available on old Go Versions
NewSyncClient
- flip return values to align with the other "constructors"
add NanoTimeInt64*
built-in converters
add self-assignable IDs: objectbox:"id(assignable)"
add query GreaterOrEqual
/LessOrEqual
for ints and floats
update objectbox-generator to v0.12.0
update objectbox-c to v 0.13.0
fix compiling on old gcc (e.g. the one in CentOS 7)
update to objectbox-c v0.10.0 with latest improvements and fixes
support comma in addition to space as an annotation separator
ensure Query finalizer is only executed by Go GC after a native call finishes
use temp directories in tests to prevent failure in recent Go versions checking-out modules as read-only
add Box Insert
and Update
methods with stricter semantics than Put
add AsyncBox with Put
, Insert
, Update
, Remove
Code generator improvements
handle type-checker errors more gracefully (don't fail on failures in unneeded imports)
add clean
command-line option to remove all generated files
time.Time
will automatically use a built in converter to Unix timestamp (milliseconds)
improve model.json file diff-level compatibility with other language bindings
embedded struct and to-one relations cycle detection
support changing property type and resetting its stored value
nil check for embedded pointer structs in the generated code
minor bug fixes when the generated code wouldn't compile in some edge cases
update to the latest ObjectBox-C library v0.8.1
deprecate box.PutAsync()
in favor of box.async().Put()
i.e. using AsyncBox
mark byte
properties as unsigned
fix getters on objects with missing relations and non-existent IDs in GetMany
better windows installation experience using a PowerShell script
make golint
happier :)
This is quite a big release, bringing some new features and cleaning up the API.
explicit transaction support via ObjectBox::RunInReadTx
and ObjectBox::RunInWriteTx
Go Modules support
add objectbox
namespace to tags to align with reflect.StructTag.Get
unofficial spec
optional lazy loading on to-many relations - lazy
annotation
box additions:
GetMany
, RemoveMany
, RemoveIds
, ContainsIds
, RemoveIds
to-many relation auxiliary methods: RelationIds
, RelationPut
, RelationRemove
, RelationReplace
switch default/recommended go:generate
entity generator command from objectbox-gogen
to //go:generate go run github.com/objectbox/objectbox-go/cmd/objectbox-gogen
quite a few internal changes, renames and other refactorings (e.g. renamed PutAll
to PutMany
, removed Cursor
, aligned model JSON with other bindings, ...)
Fixed macOS build and 32-bit query support.
Minor refactoring/linter issues
As we queued up quite a few changes, we're doing a release candidate first for you to test:
Improved relations support
Embedded structs
Recognize and handle type aliases and named types used as entity fields
New Box methods: CountMax(), IsEmpty(), Contains() and PutAsyncWithTimeout()
Query support AND & OR (combine conditions)
Query LT|GT|Between support for unsigned numbers
Support numeric string ID in the entity
Support for[]string
as a field type
Optional pass/return-by-value for slice-of-structs in the generated code
Change strings to use hash-based instead of value-based indexes by default
A new option to AlwaysAwaitAsync that can be enabled during initialization
Box and Query do not require manual closing anymore
Fixed wrong mapping for Go types (u)int and (u)int8. Luckily we noticed this very early: if you used those types in previous versions, please delete old database files.
Transactions are now safely aborted in case of panics
Changed file name of generated code, e.g. file endings for model is now ".obx.go"
Foundation for all query conditions (final query API will come with the next version)
Put(object) now assigns the new id to the object itself
Initial public release
Update objectbox-c to v0.21.0 with many improvements ()
Update bringing many improvements to Go
Update bringing many improvements to Go
add support
add client support
extract code generation into a separate module/project and depend on it to preserve existing go:generate
annotations
add Query order and parameter alias support - see docs for more info
Custom to store unsupported types & structs that can't be inlined/prefixed
New Query methods:
New Query methods: - to run a cached query with custom parameters
New
Support for using UIDs