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.
stack concept outline:
stack module outline:
Streams
- pull-stream: minimal composable streams with lazy back pressure and error propagation
- mutant: lazy observables and reactive html elements
Modules
Database
ssb-db: database of unforgable append-only feeds, optimized for efficient peer-to-peer replication
- flumedb: modular database where logs are moved with streams- flumelog-offset: An flumelog where the offset into the file is the key
- flumelog-memory: A simple in-memory flumelog
- flumeview-query: A flumeview with map-filter-reduce queries
- flumeview-level: A flumeview implemented on top of level
- flumeview-reduce: A flumeview into a reduce function
- flumeview-hashtable: A in-memory hashtable based flumeview
- flumeview-search: fulltext search as a flumeview
 
- ssb-keys: keyfile operations for ssb
- ssb-feed: create a secure-scuttlebutt feed
- ssb-config: standard configuration for ssb
- ssb-ref: check if a string is a valid ssb-reference
Crypto
- chloride: a cryptographic library for JavaScript environments, often wrappping libsodium.
- 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 no- tofield)
Server
ssb-server: peer-to-peer log store used as a database, identity provider, and messaging system
- muxrpc: lightweight multiplexed rpc
- mdmanifest: markdown manifests for mux rpc apis
- muxrpcli: command-line interface to mux rpc servers
- secret-stack: connect peers to each other using secret-handshakes
- ssb-validate: validate ssb messages, completely functionally
- ssb-query: a functional query engine, that operates over streams of js objects, and can be optimized via database indexes.
- ssb-blobs: blob gossiping ssb-subprotocol
- ssb-serve-blobs: HTTP server to expose blobs
- ssb-conn: automatically manage connections with peers
- ssb-replicate: feed replication algorithm
- ssb-friends: the logic around who to replicate or not
- multiblob: a content-addressable-store that supports multiple hashing algorithms
- ssb-ooo: out-of-order messages
- ssb-ebt: replication with epidemic-broadcast-trees
- pubs- easy-ssb-pub: an easy-to-host server that runs an SSB "Pub"
- ssb-pub: easily host your own ssb pub in a docker container
 
- rooms- ssb-room: easily host your own ssb room server in a docker container
 
Client
- patchcore: a shared library to build ssb apps
- ssb-client: client library to scuttlebot
- ssb-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 activity
- ssb-avatar: query for the avatar that an ssb feed has been assigned
- ssb-mentions: extract the mentions in a ssb message
- ssb-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 devices
- react-native-ssb-shims: basic shims required to insert modules from the SSB ecosystem into React Native apps
- react-native-scuttlebot: scuttlebot but for React Native applications
- react-native-ssb-client: like ssb-client, but runs in React Native apps
- react-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 SSB- git-remote-ssb: A git remote helper for using- ssb://URLs with git
- git-ssb-web: A web server for browsing repos locally
 
App helpers
- ssb-schema-definitions: Standardised schema definitions for ssb message types using is-my-json-valid
- scuttle-shell: A system tray app for running Secure Scuttlebutt and providing sbot features to your local system
- scuttle-poll: Create and vote on polls on ssb- ssb-poll-schema: Gives parsers and validators for all known schema versions of ssb-poll messages
 
- scuttle-gathering: Returns a set of functions as an API for validating, building, publishing and reading records related to gatherings
- scuttle-tag: Tag reading and manipulation plugin for secure scuttlebutt.
- scuttle-blog: A helper module which covers all your ssb blog related needs from- blogdata
- ssb-meme: Uses flumeview-search to build an index of all images names.
- ssb-chat-core: All the core functionality used by- scat
- ssb-bot: conversational user interfaces for Scuttlebutt :robot:
Dev helpers
- scuttle-playbook: A very opinionated but very convenient way to test Secure Scuttlebutt applications
- ssb-utils: CLI utilities for use with Secure Scuttlebutt (SSB)