Sign inSign up

nullvoxpopuli/emberclear

By nullvoxpopuli

•Updated 9 months ago

Encrypted Chat. No History. No Logs.

Image
1

10K+

nullvoxpopuli/emberclear repository overview

⁠emberclear⁠

pipeline status Build Status coverage report Maintainability bundle analysis Crowdin

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.

⁠Another Chat App?

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: ⁠

⁠Development

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
  • server side rendering (via prember, since this is statically hosted)
  • 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⁠
⁠Debugging

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

⁠License

GNU General Public License version 3⁠

Tag summary

Content type

Image

Digest

sha256:dfb504591…

Size

26.1 MB

Last updated

9 months ago

docker pull nullvoxpopuli/emberclear