All Projects → qedus → Nds

qedus / Nds

Licence: apache-2.0
A Go (golang) Google App Engine datastore package with strongly consistent caching.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Nds

Datastore
(AE|Cloud) Datastore Wrapper
Stars: ✭ 198 (+28.57%)
Mutual labels:  appengine, datastore
server
The ViUR application development framework - legacy version 2.x for Python 2.7
Stars: ✭ 12 (-92.21%)
Mutual labels:  appengine, datastore
Clean Go
Clean Architecture Example in Go
Stars: ✭ 274 (+77.92%)
Mutual labels:  appengine, datastore
Memcache Info
Simple and efficient way to show information about Memcache.
Stars: ✭ 84 (-45.45%)
Mutual labels:  memcache
Gopherus
This tool generates gopher link for exploiting SSRF and gaining RCE in various servers
Stars: ✭ 1,258 (+716.88%)
Mutual labels:  memcache
Kafka Connect
equivalent to kafka-connect 🔧 for nodejs ✨🐢🚀✨
Stars: ✭ 102 (-33.77%)
Mutual labels:  datastore
Yawp
Kotlin/Java API framework for Google Appengine
Stars: ✭ 136 (-11.69%)
Mutual labels:  appengine
Redis Dataloader
Batching and Caching layer using Redis as the Caching layer
Stars: ✭ 72 (-53.25%)
Mutual labels:  datastore
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+1123.38%)
Mutual labels:  memcache
Zebra database
A compact, lightweight and feature-rich PHP MySQLi database wrapper
Stars: ✭ 98 (-36.36%)
Mutual labels:  memcache
Drone Gae
Drone plugin for managing deployments and services on Google App Engine (GAE)
Stars: ✭ 96 (-37.66%)
Mutual labels:  appengine
Easy Extends
一个简单快速安装PHP扩展的程序--最简单的方法就是使用Linux
Stars: ✭ 85 (-44.81%)
Mutual labels:  memcache
Quitnow Cache
A collection to store data for a given time
Stars: ✭ 109 (-29.22%)
Mutual labels:  memcache
Java Docs Samples
Java and Kotlin Code samples used on cloud.google.com
Stars: ✭ 1,259 (+717.53%)
Mutual labels:  appengine
Sanic session
Provides server-backed sessions for Sanic using Redis, Memcache and more.
Stars: ✭ 131 (-14.94%)
Mutual labels:  memcache
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 (-49.35%)
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 (+938.31%)
Mutual labels:  datastore
Gomemcache
Go Memcached client library #golang
Stars: ✭ 1,321 (+757.79%)
Mutual labels:  memcache
Magnolify
A collection of Magnolia add-on modules
Stars: ✭ 81 (-47.4%)
Mutual labels:  datastore
Datastore
🐹 Bloat free and flexible interface for data store and database access.
Stars: ✭ 99 (-35.71%)
Mutual labels:  datastore

nds

Build Status Coverage Status GoDoc

Package github.com/qedus/nds is a datastore API for the Google App Engine (GAE) Go Runtime Environment that uses memcache to cache all datastore requests. It is compatible with both Classic and Managed VM products. This package guarantees strong cache consistency when using nds.Get* and nds.Put*, meaning you will never get data from a stale cache.

Exposed parts of this API are the same as the official one distributed by Google (google.golang.org/appengine/datastore). However, underneath github.com/qedus/nds uses a caching stategy similar to the GAE Python NDB API. In fact the caching strategy used here even fixes one or two of the Python NDB caching consistency bugs.

You can find the API documentation at http://godoc.org/github.com/qedus/nds.

One other benefit is that the standard datastore.GetMulti, datastore.PutMulti and datastore.DeleteMulti functions only allow you to work with a maximum of 1000, 500 and 500 entities per call respectively. The nds.GetMulti, nds.PutMulti and nds.DeleteMulti functions in this package allow you to work with as many entities as you need (within timeout limits) by concurrently calling the appropriate datastore function until your request is fulfilled.

How To Use

You can use this package in exactly the same way you would use google.golang.org/appengine/datastore. However, it is important that you use nds.Get*, nds.Put*, nds.Delete* and nds.RunInTransaction entirely within your code. Do not mix use of those functions with the google.golang.org/appengine/datastore equivalents as you will be liable to get stale datastore entities from github.com/qedus/nds.

Ultimately all you need to do is find/replace the following in your codebase:

  • datastore.Get -> nds.Get
  • datastore.Put -> nds.Put
  • datastore.Delete -> nds.Delete
  • datastore.RunInTransaction -> nds.RunInTransaction

Versions

Versions are specified using Go Modules.

  • Version 1.x.x: Can be found on branch master and uses the google.golang.org/appengine package.
  • Version 2.x.x: Can be found on branch v2. This is a major update and takes advantage of the new cloud.google.com/go/datastore package provided by Google. It currently in an experimental state and we welcome contributions.
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].