# Introduction

![](https://3001309861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LUH7nrnu4hyOFasrmL5%2F-LUH8gNqFEPsIpOmsnez%2F-LUH8lf45DsGpdFZoOoP%2Flogo.png?generation=1545419038576452\&alt=media)

## Introduction

> gstore-node is a Google Datastore **entities modeling library** for Node.js inspired by Mongoose and built on top of the [@google-cloud-node](https://github.com/GoogleCloudPlatform/google-cloud-node) library.

### Hightlight

* explicit **Schema declaration** for entities
* properties **type validation**
* properties **value validation**
* **shortcuts** queries
* pre & post **middleware** (hooks)
* **custom methods** on entity instances
* **Joi** type and validation ([documentation](https://www.npmjs.com/package/joi))
* [**cache**](https://sebloix.gitbook.io/gstore-node/cache-dataloader/cache) layer to speed up entities fetching
* [**Typescript**](https://sebloix.gitbook.io/gstore-node/typescript) support
* [**populate()**](https://sebloix.gitbook.io/gstore-node/populate) support to fetch reference entities and do cross Entity Type "joins" when querying one or multiple entities

### Repository

<https://github.com/sebelga/gstore-node>

### Support

<https://github.com/sebelga/gstore-node/issues>
