All Projects → mercari → Datastore

mercari / Datastore

Licence: other
(AE|Cloud) Datastore Wrapper

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Datastore

Nds
A Go (golang) Google App Engine datastore package with strongly consistent caching.
Stars: ✭ 154 (-22.22%)
Mutual labels:  appengine, datastore
Clean Go
Clean Architecture Example in Go
Stars: ✭ 274 (+38.38%)
Mutual labels:  appengine, datastore
server
The ViUR application development framework - legacy version 2.x for Python 2.7
Stars: ✭ 12 (-93.94%)
Mutual labels:  appengine, datastore
Gradle Gae Plugin
Gradle plugin that provides tasks for uploading, running and managing Google App Engine projects
Stars: ✭ 62 (-68.69%)
Mutual labels:  appengine
Redis Dataloader
Batching and Caching layer using Redis as the Caching layer
Stars: ✭ 72 (-63.64%)
Mutual labels:  datastore
Ruby Docker
Ruby runtime for Google Cloud Platform
Stars: ✭ 122 (-38.38%)
Mutual labels:  appengine
Marvin
A go-kit HTTP server for the App Engine Standard Environment
Stars: ✭ 164 (-17.17%)
Mutual labels:  appengine
Goshare
Go Share your TimeSeries/NameSpace/KeyVal DataStore (using leveldb) over HTTP &/or ZeroMQ
Stars: ✭ 59 (-70.2%)
Mutual labels:  datastore
Fluentular
Fluentular is a Fluentd regular expression editor
Stars: ✭ 154 (-22.22%)
Mutual labels:  appengine
Datastore
🐹 Bloat free and flexible interface for data store and database access.
Stars: ✭ 99 (-50%)
Mutual labels:  datastore
Drone Gae
Drone plugin for managing deployments and services on Google App Engine (GAE)
Stars: ✭ 96 (-51.52%)
Mutual labels:  appengine
Magnolify
A collection of Magnolia add-on modules
Stars: ✭ 81 (-59.09%)
Mutual labels:  datastore
Movietray
Its a playground application focusing on Paging3, MVVM architecture, Kotlin Extension functions, Retrofit, DSL, Navigation component, MotionLayout, SharedElementTransition, Single Activity Architecture, DataStore etc.
Stars: ✭ 78 (-60.61%)
Mutual labels:  datastore
Js Data
Give your data the treatment it deserves with a framework-agnostic, datastore-agnostic JavaScript ORM built for ease of use and peace of mind. Works in Node.js and in the Browser. Main Site: http://js-data.io, API Reference Docs: http://api.js-data.io/js-data
Stars: ✭ 1,599 (+707.58%)
Mutual labels:  datastore
Dsui
Datastore Emulator UI
Stars: ✭ 66 (-66.67%)
Mutual labels:  datastore
Elixir Runtime
The community-supported runtime for Elixir on Google App Engine.
Stars: ✭ 158 (-20.2%)
Mutual labels:  appengine
Composepictures
This is a project built using Jetpack Compose on UI, Clean architecture, Dagger Hilt, Kotlin Flow, Navigation Components etc.
Stars: ✭ 62 (-68.69%)
Mutual labels:  datastore
Runtimes Common
Common tools used by the GCP runtimes.
Stars: ✭ 86 (-56.57%)
Mutual labels:  appengine
Kafka Connect
equivalent to kafka-connect 🔧 for nodejs ✨🐢🚀✨
Stars: ✭ 102 (-48.48%)
Mutual labels:  datastore
Bots Framework
Golang framework to build multilingual bots for messengers (Telegram, FB Messenger, Skype, Line, Kik, WeChat) hosted on AppEngine, Amazon, Azure, Heroku or standalone
Stars: ✭ 189 (-4.55%)
Mutual labels:  appengine

Datastore Wrapper Go Documentation CircleCI

(AppEngine | Cloud) Datastore wrapper for Go 👉

Simple. Happy. Respect standard library.

$ go get -u go.mercari.io/datastore

Feature

DO

  • Wrap google.golang.org/appengine/datastore and cloud.google.com/go/datastore
    • keep key behavior
    • align to cloud.google.com/go/datastore first
  • Re-implement datastore package
  • Re-implement datastore.SaveStruct & LoadStruct
    • Ignore unmapped property
    • Add PropertyTranslator interface
      • Convert types like mytime.Unix to time.Time and reverse it
      • Rename property like CreatedAt to createdAt or created_at and reverse it
  • Re-implement PropertyLoadSaver
    • Pass context.Context to Save & Load method
  • Add retry feature to each RPC
    • e.g. Retry AllocateID when it failed
  • Add middleware layer
    • About...
      • Local Cache
      • AE Memcache
      • Logging
      • Retry
      • etc...
    • Easy to ON/OFF switching
  • Add some useful methods
    • aedatastore/TransactionContext

DON'T

  • have utility functions
  • support firestore

Restriction

  • aedatastore package
    • When using slice of struct, MUST specified datastore:",flatten" option.
      • original (ae & cloud) datastore.SaveStruct have different behaviors.
      • see aeprodtest/main.go /api/test3

Committers

Contribution

Please read the CLA below carefully before submitting your contribution.

https://www.mercari.com/cla/

Setup environment & Run tests

  • requirements
    • gcloud sdk
      • gcloud components install app-engine-go
      • gcloud components install beta cloud-datastore-emulator
  1. Testing in local
$ ./setup.sh # exec once
$ ./serve.sh # exec in background
$ ./test.sh
  1. Testing with Circle CI CLI
$ circleci build

License

Copyright 2017 Mercari, Inc.

Licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].