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

deltadb-server

v0.0.5

Published

An offline-first database

Downloads

13

Readme

DeltaDB Build Status Coverage Status Dependency Status

DeltaDB is an offline-first database designed to talk directly to clients and works great offline and online.

Live Demos

  • todomvc-angular - a todo app. For fun, open it in 2 different browser windows and watch the todos change in the 2nd window when you change the todos in the 1st window.

  • hello - a simple hello world example with code

Getting Started With DeltaDB

Check out the Getting Started With DeltaDB tutorial

Main Principles

  • Written in JavaScript
  • Framework agnostic
  • Works the same whether the client is offline or online
  • NoSQL database that works in your browser and automatically syncs with the database cluster
  • Stores all data as a series of deltas, which allows for smooth collaborative experiences even in frequently offline scenarios.
  • Uses a simple last-write-wins conflict resolution policy and is eventually consistent
  • Uses a homegrown ORM to speak to underlying SQL databases. (Support for underlying NoSQL databases will be added)
  • Is fast. Clients push their deltas on to the server's queue. The server processes the queue separately and partitions the data so that clients can retrieve all recent changes very quickly.
  • Implements a granular authentication system that protects databases, collections, docs and attributes
  • Is incredibly scalable. Deltas can be segmented by UUID and the cost to add new nodes has a negligible impact on the cluster as handshaking between servers can be done as frequently as desired.
  • Highly available. Clients can switch to talk to any node, even if that node hasn't received the latest deltas from another node.
  • Fault tolerant by using the concept of a quorum of servers for recording changes
  • Data is auto-restored when a client modifies data that was previously deleted
  • Uses timestamps to update records so that transactions and their overhead can be avoided
  • Thread-safe so that adding more cores will speed up DB reads and writes

Why?

Because it doesn't exist and true support for offline environments needs to be engineered from the ground up

  • PouchDB relies on CouchDB and CouchDB is slow to replicate when there are many revisions and it is not optimized for offline setups like db-per-user
  • Firebase doesn't work offline and is not open source
  • Meteor doesn't work offline
  • See Inspiration for more info

Installation

Examples

API

To Do

Contributing

Notes

Issues

Ideas