crcn/mesh.js
utility library for async iterable iterators
{ "createdAt": "2015-03-25T23:26:47Z", "defaultBranch": "master", "description": "utility library for async iterable iterators", "fullName": "crcn/mesh.js", "homepage": "http://mesh.js.org", "language": "JavaScript", "name": "mesh.js", "pushedAt": "2018-12-22T16:28:21Z", "stargazersCount": 1004, "topics": [], "updatedAt": "2025-07-02T23:32:37Z", "url": "https://github.com/crcn/mesh.js"}⚠️ This library is no longer maintained, and should not be used in production applications.
Section titled “⚠️ This library is no longer maintained, and should not be used in production applications.”
Mesh is a utility library for async iterable iterators.
Motivation
Section titled “Motivation”This library was originally created to handle complex data flows, and unify how applications communicate internally and externally. It also serves as a single channel for all communication which makes it more easy to control & reason about how your application is passing around data asynchronously.
Mesh provides a set of higher order functions that you can use to build your data flows out. Here’s an example of that:
import { when, wrapAsyncIterableIterator, fallback } from "mesh";import { DS_FIND, DS_INSERT, DS_REMOVE, DS_UPDATE, dataStore, DSFindMessage, whenCollection, DSInsertMessage, DSRemoveMessage, DSUpdateMessage,} from "mesh-ds";
const insertTodoItem = (message: DSInsertMessage) => ( wrapAsnycIterableIterator(fetch('/api/todos', { method: 'POST', body: message.data })));
const insert = fallback( whenCollection('todos', insertTodoItem),
// more collections below // whenCollection('users', insertUser), // whenCollection('items', insertItem),);
const dsDispatch = dataStore({ [DS_INSERT] : insert,
// other operations - similar code to insert //[DS_REMOVE] : remove, //[DS_UPDATE] : update, //[DS_FIND] : find});Installation
Section titled “Installation”NPM: npm install mesh
Bower: bower install mesh
Resources
Section titled “Resources”- Documentation
- [Examples]!(./examples)
- Modules
- Data Store Adapters
- [in-memory data store bus]!(./packages/mesh-memory-ds-bus)
- [mongodb bus]!(./packages/mesh-mongo-ds-bus)
- [lokijs bus]!(./packages/mesh-loki-ds-bus) - lokijs in-memory adapter
- [local storate bus]!(./packages/mesh-local-storage-ds-bus) - local storage DS adapter
- [array bus]!(./packages/mesh-collection-bus) - persist DS operations to an array collection
- Realtime Protocol Adapters
- [socket.io bus]!(./packages/mesh-socket-io-bus)
- [webrtc bus]!(./packages/mesh-webrtc-bus)
- Other Adapters
- [http bus]!(./packages/mesh-http-bus) - HTTP request bus
- Other Busses
- [upsert ds action]!(./packages/mesh-webrtc-bus) - adds upsert (insert/update) action for DS busses
- [tailable bus]!(./packages/mesh-tailable-bus) - adds ability to listen for all executed operations
- [remote protocol adapter bus]!(./packages/mesh-remote-bus) - adapter bus for any realtime protocol
- Data Store Adapters
- Discuss
- Companies using Mesh
- Articles