An implementation of the mesh-chat protocol.
emberclear is published at: https://emberclear.io and can be run locally with docker via
docker run -d -p 4201:80 nullvoxpopuli/emberclear
and then can be visited at http://localhost:4201
.
Yes, there is a lack of trust that manifests when existing chat apps are closed source and centralized. Emberclear, by design, is trustless -- meaning that, while there is a server component, the server knows nothing more than your "public key". The server(s) are also meant to be a hot-swappable member of a mesh network, so no one implementation matters, as long as the same protcol is used.
Here is a table of detailing out some differences between emberclear and other chat apps:Note: the frontend code is in packages/frontend
. This is to separate the over-arching repo files from the individual project(s).
git submodule update --init --recursive
./run yarn start:dev
Question: should the relay finally become part of the same project?
Written in ember for demonstration of
- progressive web apps
- service workers
- websockets
- typescript
- all the modern features / best practices of ember
TODO:
- implement WebRTC for messaging/audio/video and use websockets as a fallback
- ensure that WebRTC messages can be manually encrypted (otherwise, it's not worth it)
- websocket via WebWorker for disconnecting the UI App from the data management so that the UI App can update independently from the WebWorker Socket Connection
- WASM / ASM.js Renderer
Module Resolution:
// shows all detected services
Object.keys(window.requirejs.entries).filter(b => b.includes("service"))
File Watch Problems?
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p