Nice. I wonder if you could get it shorter with Ruby, or Lisp. And what it would look like with Rust or Go. Should be easy to port I reckon. Maybe I'll give it a try.
Thanks, I considered ruby initially and it's possible for the relay (even bash would work :)).
For the local sync, I needed sqlite and python comes with sqlite client in a standard lib, ruby requires a gem.
I wanted core parts of the infra (relay and sync) to be implemented with zero external language dependencies. I didn't want to have a relay in ruby and sync in python. TUI example uses textual, so everything fits in a single language.
I think it comes down to trust and maintenance cost. I wanted to minimise external dependencies, so the whole implementation is under 500 lines of code using only standard tooling.
The implementation depends on OpenSSH, Python, Docker and age. Highly trusted / audited / scrutinised / maintained code. This fits well with e2e messaging infra.
For the local sync, I needed sqlite and python comes with sqlite client in a standard lib, ruby requires a gem.
I wanted core parts of the infra (relay and sync) to be implemented with zero external language dependencies. I didn't want to have a relay in ruby and sync in python. TUI example uses textual, so everything fits in a single language.
The implementation depends on OpenSSH, Python, Docker and age. Highly trusted / audited / scrutinised / maintained code. This fits well with e2e messaging infra.
> Communicate with people you trust, away from the eyes of modern surveillance and large corporations.
I hope this answers your question.