• Fix saving behavior for non-struct custom types which implement PropertyLoadSaver and for nil interface types.
  • Support DetectProjectID when using the emulator.


  • Adds Datastore Admin API.
  • Documentation updates.


  • DEADLINE_EXCEEDED is now not retried.
  • RunInTransaction now panics more explicitly on a nil TransactionOption.
  • PropertyLoadSaver now tries to Load as much as possible (e.g., Key), even if an error is returned.
  • Client now uses transport/grpc.DialPool rather than Dial.
    • Connection pooling now does not use the deprecated (and soon to be removed) gRPC load balancer API.
  • Doc updates
    • Iterator is unsafe for concurrent use.
    • Mutation docs now describe atomicity and gRPC error codes more explicitly.
    • Cursor example now correctly uses “DecodeCursor” rather than “NewCursor”


This is the first tag to carve out datastore as its own module. See: