- Notifications
You must be signed in to change notification settings - Fork3
high-level kotlin library for accessing Google cloud datastore
License
Khan/kotlin-datastore
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A high-level library for accessing Google cloud datastore from kotlin / jvm.
Datastore models are represented as plain data classes. Datastore access goesthrough a global singleton objectDB. The general design is heavilyinfluenced by the python db and ndb datastore client libraries.
Work-in-progress library documentation
This project is organized into two subprojects (which are packaged intoindependent artifacts):
schema-metadataThis contains annotations and types for defining datastore models as kotlindata classes. Everything in here is independent of the Google cloud clientlibraries and could be used for expressing schemas for other databases aswell.
google-cloud-datastoreCode for using data classes defined within the schema-metadata package asGoogle cloud datastore entities. Also contains a default test stub.
This is currently mostly feature complete and is being used in production,but we're still numbering releases as pre-1.0 for now to allow some greaterflexibility for iterating on the public API as we start to use it more.
Functionality planned prior to a first release:
- Datastore get-by-key
- Transactions
- Asynchronous operation (via kotlin coroutines)
- Datastore queries (via a
Map-like interface) - Datastore writes
- multi-get and -put
- Use of plain kotlin data classes to represent datstore models
- Reflective implementation of converting Google datastore client
Entitys to data class instances - Reflective implementation of converting data class instances to Google datastore client
Entitys - Annotations for assigning a different in-datastore name to a property
- Annotations for choosing whether to index a property
- Primitive, nonrepeated properties
- Repeated properties
- Nested entity properties
- Timestamp properties
- Key properties
- Location properties
- Json properties
- Computed properties
- Other miscellaneous property types (in general we plan to support equivalents of thestandard ndb property types athttps://cloud.google.com/appengine/docs/standard/python/ndb/entity-property-reference#properties_and_value_types)
- Backend using the google-cloud-java datastore client
- Test stub backend
Functionality planned after a first release:
- Independent transaction propagation mode
- Nontransactional context to escape from an ongoing transaction
- Annotation-processor-based generation of nonreflective converters to/from
Entity - Annotation-processor-based typed query builders
- Generation of bigquery schemas from model data classes
MIT, see LICENSE file.
About
high-level kotlin library for accessing Google cloud datastore
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Contributors6
Uh oh!
There was an error while loading.Please reload this page.