Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
automerge-simple-connection
Advanced tools
This is a simpler, asynchronous, version of Automerge's [Connection](https://github.com/automerge/automerge/blob/master/src/connection.js) protocol, which is used to send and receive changes to Automerge documents.
This is a simpler, asynchronous, version of Automerge's Connection protocol, which is used to send and receive changes to Automerge documents.
Unlike the original Automerge Connection, this connection:
Plus, this connector is interoperable with a peer who's using the original.
npm install --save automerge-simple-connection
Async Automerge Connection assumes you're implementing an AsyncDocStore
class that satisfies this interface:
interface AsyncDocStore {
getDoc<T>(docId: string): Promise<Doc<T>>;
setDoc<T>(docId: string, doc: Doc<T>): Promise<Doc<T>>;
}
An in-memory example of such a store might just be:
import { AsyncDocStore } from "automerge-simple-connection";
class MyDocStore extends AsyncDocStore {
_docs = {};
getDoc(docId) {
return _docs[docId];
}
setDoc(docId, doc) {
_docs[docId] = doc;
return doc;
}
}
Then, you'll create a sendMsg
function that takes a message and sends it over the network however you want. For example:
function sendMsg(msg) {
myNetwork.send(JSON.stringify(msg));
}
Finally, you'd create a Connection
class and pass both your AsyncDocStore
and your sendMsg
function in.
import { Connection } from "automerge-simple-connection";
const connection = new Connection(new MyDocStore(), sendMsg);
To let other clients know a document changed, just call the docChanged
function:
connection.docChanged(myDocId, myDoc);
The goal of this library is to decouple Automerge Connection from DocSet, so you don't have to load every document into memory. That makes it easier to run a peer that offloads documents into a cache or database.
Because it doesn't use DocSets, it also doesn't use the handler pattern the original Automerge Connection uses. That makes debugging a lot easier since there's less "magic" about when things are sent across the wire.
FAQs
This is a simpler, asynchronous, version of Automerge's [Connection](https://github.com/automerge/automerge/blob/master/src/connection.js) protocol, which is used to send and receive changes to Automerge documents.
The npm package automerge-simple-connection receives a total of 2 weekly downloads. As such, automerge-simple-connection popularity was classified as not popular.
We found that automerge-simple-connection demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.