Files: ab873c2885cbee350d729e22e361d9c2197608e0 / modules.md
Modules
Isaac Schlueter (creator of npm) puts it very well: agreement is very difficult, so limit the amount of agreement necessary.
i.e. write modules.
With less agreement required, it's easier to find points of agreement, and so we can have more agreements overall.
Secure-scuttlebutt vs scuttlebutt vs scuttlebot vs sbot?
An explanation of terms, repos and project history
scuttlebutt
: agossip protocol
that synchronises messages via a vector clock of per-node timestamps or sequences. Dominic got this name from an amazon paper "Efficient Reconciliation and Flow Control for Anti-Entropy Protocols". This is the original scuttlebutt module which should now be known as "insecure scuttlebutt". This repo is generally no longer used by the ssb community.secure-scuttlebutt
: this is the database part of ssb. Previously this term referred to the protocol/database as a whole.scuttlebot
: this repo adds networking behaviour to the database (secure-scuttlebutt).sbot
: short for scuttlebot, also the cli command name.
There have been suggestions to rename some repos to better reflect their use and purpose:
secure-scuttlebutt --> ssb-db
scuttlebot --> ssb-server
Streams
pull-stream
: minimal composable streams with lazy back pressure and error propagationmutant
: lazy observables and reactive html elements
Modules
Database
secure-scuttlebutt
: database of unforgable append-only feeds, optimized for efficient peer-to-peer replication
flumedb
: modular database where logs are moved with streamsssb-keys
: keyfile operations for ssbssb-feed
: create a secure-scuttlebutt feedssb-config
: standard configuration for ssbssb-ref
: check if a string is a valid ssb-reference
Crypto
secret-handshake
: secure-channel based on a a mutually authenticating key agreement handshake, with forward secure identity metadata.private-box
: private message between two parties (with noto
field)
Server
scuttlebot
: peer-to-peer log store used as a database, identity provider, and messaging system
muxrpc
: lightweight multiplexed rpcmdmanifest
: markdown manifests for mux rpc apismuxrpcli
: command-line interface to mux rpc serverssecret-stack
: connect peers to each other using secret-handshakesssb-query
: a functional query engine, that operates over streams of js objects, and can be optimized via database indexes.ssb-blobs
: blob gossiping ssb-subprotocolmultiblob
: a content-addressable-store that supports multiple hashing algorithmsssb-ebt
: replication with epidemic-broadcast-treeseasy-ssb-pub
: an easy-to-host server that runs an SSB "Pub"
Client
patchcore
: a shared library to build ssb appsssb-client
: client library to scuttlebotssb-party
: get a scuttlebot client instance. if scuttlebot isn't running, start it in the background, and keep it running until all the clients have disconnected.ssb-notifier
: desktop notifications for secure-scuttlebutt activityssb-avatar
: query for the avatar that an ssb feed has been assignedssb-mentions
: extract the mentions in a ssb messagessb-markdown
: render ssb messages to markdown.ssb-sort
: sort a collection of messages by their causal order
Mobile
react-native-node
: Node.js background process for React Native apps, fundamental for running sbot on mobile devicesreact-native-ssb-shims
: basic shims required to insert modules from the SSB ecosystem into React Native appsreact-native-scuttlebot
: scuttlebot but for React Native applicationsreact-native-ssb-client
: like ssb-client, but runs in React Native appsreact-native-ssb-client-keys
: keyfile operations for SSB, to be used from the client-side of React Native apps
Git
git-ssb
: Git repos, issue tracking, and pull requests using SSBgit-remote-ssb
: A git remote helper for usingssb://
URLs with gitgit-ssb-web
: A web server for browsing repos locally
Built with git-ssb-web