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:
pull-stream: minimal composable streams with lazy back pressure and error propagation
mutant: lazy observables and reactive html elements
secure-scuttlebutt: 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
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
scuttlebot: 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-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
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
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-ssb: Git repos, issue tracking, and pull requests using SSB
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
ssb-meme: Uses flumeview-search to build an index of all images names.
ssb-chat-core: All the core functionality used by
ssb-bot: conversational user interfaces for Scuttlebutt :robot: