Coder Social home page Coder Social logo

ntid's Introduction

NTID Circle CI

NTIDs are IDs of the form Type[...] where the string between the square brackets may contain other NTIDs or a URL-safe Base64 string. NTIDs are designed to be:

  1. relatively human-readable
  2. typed (so you never accidentally mix up a user ID and a photo ID, for example)
  3. generatable anywhere (i.e. not relying on a central service to sequentially dole them out; any client can just make one up that will be unique)
  4. composable; e.g., the ID for the Like object that captures the like-state of User A liking (or not liking) Photo B, is deterministic. This is useful so that two clients, or a client and server, avoid creating separate entities for things that should be singletons. It's also useful as a primary key in RethinkDB (or any other system that doesn't allow compound primary keys).

CLI

NTID comes with a command called ntid that generates IDs. Install NTID globally with npm i -g ntid and run:

$ ntid example
example[RY7ss1F2-Y7S0nvTbNBH73]

API

makeId(type)

Takes a string denoting the type of NTID to generate and returns a new randomly generated NTID.

makeCompoundId(type, ids)

A compound NTID is made up of nested NTIDs. Like all NTIDs, it has its own type but instead of a randomly generated body, it contains nested NTIDs. The order of the nested NTIDs matches the order in which they appear in the given array, which makes them useful for directed edges.

makeSymmetricId(type, ids)

A symmetric NTID is a compound ID that sorts its nested NTIDs in a consistent manner. This is useful for undirected edges, hence the symmetry.

getTypeFromId(id)

Parses the type of the given NTID.

ntid's People

Contributors

dependabot[bot] avatar ide avatar wschurman avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.