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

yildiz

v9.1.0

Published

Graph Database on top of Bigtable

Downloads

151

Readme

Build Status Version MIT License node Swagger

Intro

YildizDB acts as a highly scaleable HTTP layer in front of Google Bigtable. It helps you store billions of relations between nodes in edges and resolve them in milliseconds. A small access layer helps you manage multiple namespaces with ease. YildizDB scales to hundrets of Terabytes. YildizDB excells in $N:N$ non nested relationships.

Features

  • simple namespacing (table separation) with prefixes
  • simple access management through tokens
  • multi-tenancy through table prefixes (with access management)
  • high read and write performance
  • fast read access under heavy write load
  • able to handle billions of edges and nodes
  • scales beyond Terabytes
  • lightweight deployments (small Node.js footprint)
  • ttl feature for all resources
  • HTTP Open API
  • Kubernetes HELM charts

Build for high throughput $N:N$

  • Highly async API based on fastify
  • Thin layer on top of Google's GRPC Bigtable API
  • Hashing and translating all string identifiers into integer representations via murmurhash3 automatically

Fast random access to a node's edge data $1:N$

  • Multiple complex caching layers
  • Custom Bigtable cache table speed up by Google Memorystore (Redis)
  • All Memorystore hits also speed up by In-Memory store
  • Fetch job that keeps active nodes refreshed in cache

Available clients

  • Node.js Client
  • Any Http Client can be used to access the HTTP-Interface

Usage

  • You will need a Google Cloud Project with a running Bigtable cluster
  • Additionally YildizDB requires a Memorystore (or Redis) instance
  • Configure ./config/bigtable.json accordingly
  • Install and start: npm install -g yildiz and yildizdb -p 3058 -l ./config/bigtable.json
  • A word on configuration can be found here
  • Use right alongside your code
  • Spawn server via http interface

Deployment

  • YildizDB is designed to be deployed as simple platform service
  • it requires Node.js > 9.x.x and Redis > 3.x
  • It simply requires its npm module as well as a config file that describes the connections to Bigtable and Memorystore (Redis)
  • It scales best with an HTTP load balancer in front of it e.g. NGINX
  • We run and scale it very successfully in Google's Kubernetes Engine
  • We also offer HELM charts
  • Read some more about the config file here

Metrics & Monitoring

  • Yildiz exposes Prometheus Metrics @ /admin/metrics
  • Read more about it here

Developing YildizDB

Developing YildizDB with Google Bigtable backend

  • Configure ./config/bigtable.json accordingly
  • Run tests via yarn test
  • Start via yarn http

Documentation

Disclaimer

  • This project is not affiliated with Google
  • License is MIT see