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.
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 never thought about standard library versus external dependencies in that way. I wonder why. Do you think there is a relevant difference?
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.
I've prepared a quick demo on how to run relay locally and connect two demo users: https://github.com/achempion/tlx#demo
Nice. what the use cases and groups of people you see that are going to use it?
I'll share a quote from a readme
> Communicate with people you trust, away from the eyes of modern surveillance and large corporations.
I hope this answers your question.