npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@getanthill/datastore

v0.90.4

Published

Event-Sourced Datastore

Downloads

996

Readme

getanthill Datastore

pipeline Quality Gate Status

Coverage Security Rating Reliability Rating

Twitter

Purpose

The goal of this project is to provide a system to easily access the full power of Event-Source / CQRS systems.

Documentation

https://datastore.getanthill.org/

Main Features

Manage all your Data in an Event-Source manner

Manage every single entity of your Data as a simple Event-Source entity. Track atomic updates. Restores entities at a given version. Timetravel to know what was the exact state of an entity on a given date...

Contractualize 100% of your Data Model

Every Data in the Datastore is contractualized thanks to the json-schema [^1] standard. This standard is allowing you to access a strict documentation in your RESTful API with OpenAPI 3.0 (ex-Swagger) [^2] or in your streamed events.

Use streams to process your Data in realtime

Stream your data with ease thanks to the stream entrypoint of the Datastore's API. You can use it to deploy workers easily with automatic reconnection, pattern matching and logging.

Access an explicit and compliant JSON Schema / OpenAPI 3.0 documentation of your Data

100% of the Data handled by the Datastore is available through an compliant OpenAPI 3.0 [^2] specification. You can add as many event or business rule you need in your system and make it available to everyone.

Encrypt fields in your Data with ease

Encrypt fields of your Data to make it inaccessible by users having access to your database. You can perform multiple keys encryption, keys rotation, on-demand document encryptionm etc.

Manage access roles between READ, DECRYPT, WRITE and ADMIN

Access to the Data is controlled with 4 different levels.

  • READ tokens can only read Data, potentially encrypted Data.
  • DECRYPT tokens can read Data clearly
  • WRITE tokens can write Data in the Datastore
  • ADMIN tokens can create new models and indexes

Perform smart aggregations to chain projections between your

Datastores

In addition of the sdk available to communicate with the Datastore API easily, an aggregation pipeline is made availabe to perform complex aggregations between different instances of the Datastore to handle projections, trigger specific branches of a business logic or keep track of some events.