Show HN: Tlx – E2E chat over SSH under 500 lines of code

(github.com)

4 points | by achempion 6 hours ago ago

7 comments

  • awfm9 4 hours ago ago

    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.

    • achempion 4 hours ago ago

      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.

      • awfm9 3 hours ago ago

        I never thought about standard library versus external dependencies in that way. I wonder why. Do you think there is a relevant difference?

        • achempion 3 hours ago ago

          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.

  • achempion 6 hours ago ago

    I've prepared a quick demo on how to run relay locally and connect two demo users: https://github.com/achempion/tlx#demo

  • ddaniel10 6 hours ago ago

    Nice. what the use cases and groups of people you see that are going to use it?

    • achempion 5 hours ago ago

      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.