|
@@ -1,8 +1,6 @@
|
|
|
# EZ DB
|
|
|
|
|
|
-This package provides simple interfaces for working with basic key-value storage in your Go application.
|
|
|
-
|
|
|
-**EZ DB is not a database unto itself.** If you want more control or features, just use the appropriate database software and connector for your needs.
|
|
|
+This package provides simple interfaces for working with basic key-value document storage in your Go application.
|
|
|
|
|
|
## System requirements
|
|
|
|
|
@@ -33,22 +31,6 @@ func main() {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-In other cases, such as media stores, you may prefer not to specify a document type. This example allows arbitrary bytes to be written:
|
|
|
-
|
|
|
-```go
|
|
|
-package main
|
|
|
-
|
|
|
-import "github.com/annybs/ezdb"
|
|
|
-
|
|
|
-var db = ezdb.Memory[[]byte](nil)
|
|
|
-
|
|
|
-func main() {
|
|
|
- db.Open()
|
|
|
- db.Put("data", []byte("arbitrary bytes"))
|
|
|
- db.Close()
|
|
|
-}
|
|
|
-```
|
|
|
-
|
|
|
## Marshaling data
|
|
|
|
|
|
Some database backends require marshaling and unmarshaling data. The `DocumentMarshaler[T1, T2]` interface allows you to use whatever marshaler suits your needs or the requirements of your chosen database.
|
|
@@ -64,6 +46,14 @@ The following databases are included in EZ DB:
|
|
|
- `LevelDB[T]` is [fast key-value storage](https://github.com/google/leveldb) on disk
|
|
|
- `Memory[T]` is essentially a wrapper for `map[string]T`. It can be provided another Collection to use as a persistence backend
|
|
|
|
|
|
+## Limitations
|
|
|
+
|
|
|
+EZ DB is intended for simple document storage and can work with any addressable data represented as `T` in your Go app.
|
|
|
+
|
|
|
+This makes it unsuited for working with unaddressable types, such as byte arrays, particularly when a document marshaler is involved.
|
|
|
+
|
|
|
+If you want more control beyond what EZ DB offers, it's best to just use the appropriate database software and connector for your needs.
|
|
|
+
|
|
|
## License
|
|
|
|
|
|
See [LICENSE.md](./LICENSE.md)
|