lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



> On Apr 14, 2021, at 09:33, Thijs Schreijer <thijs@thijsschreijer.nl> wrote:
> 
>>  I found the description at https://textprotocol.org to be ... opaque.
>> 
> 
> That’s an understatement :)

Quite an achievement indeed :D

According to Jesper Louis Andersen — it's art:

"It's an art installation. A lament to the mistakes we've made. The documents WE've written. But no-one reads. We revel in the 113 lines of pure specification, as a temple to Alan Kay. Documentation must be executable! The page implements human Hypertext is the Engine of Application State (HATEOAS), creating an interlinked web of important data. You MUST dig(1) to understand. Also note that the page is a mirror into a better world. A world in which text://protocol exists! It's for the youth. They never experienced the raw information exchange driven by Sync-on-Green. They never experienced Unix in its pure form. Or plan 9. Instead, they are forced, by the power of the DOM and CSS, to live in a pin-holed world where the light only shines occasionally. This is their BBS."

https://groups.google.com/g/golang-nuts/c/pKFwcoN6qwk/m/4WjBWz9gBwAJ

> I had a look earlier, but couldn’t figure it out from the site.

K. Alex Mills concurs:

"Well I'm convinced this is art, and once it's viewed that way, I think it stops being confounding and becomes delightful."

https://groups.google.com/g/golang-nuts/c/pKFwcoN6qwk/m/a64FIz1nBwAJ

> It’s sort of interesting, but can you maybe explain some use cases, implementations, and why we should be using it?

It originates in "Mercury" — a pared-down cousin of "Gemini":

https://web.archive.org/web/20210302123932/https://portal.mozz.us/gemini/gemini.circumlunar.space/users/solderpunk/gemlog/the-mercury-protocol.gmi

In terms of implementations — there is a client, a server, and a host:

https://github.com/textprotocol/public/blob/main/public#L1

https://github.com/textprotocol/publictext/blob/main/publictext#L1

Both client and server are implemented in Lua. The server itself is around ~113 sloc.

The host is accessible over both TCP and TLS:

# curl -s telnet://txt.textprotocol.org:1961 <<< 'text://txt.textprotocol.org/'
# nc -C txt.textprotocol.org 1961 <<< 'text://txt.textprotocol.org/'
# openssl s_client -quiet -crlf -connect txt.textprotocol.org:1965 <<< text://txt.textprotocol.org/ 2>/dev/null 

There is meant to be a QUIC access as well. The transport mechanisms are meant to be sorted out through DNS Service Discovery + multiaddr [1][2].

There are also talks of saltpack + keys.pub for signing and encryption. [3][4]

As to "why"... hmmm... this is what Jason Scott —of textfiles fame— has to say:

http://www.textfiles.com/100/whytext.oct
Why I Prefer Textfiles, by Jason Scott (February 27, 1987)

And... why not? :D


[1] https://en.wikipedia.org/wiki/Zero-configuration_networking#DNS-SD
[2] https://github.com/multiformats/multiaddr
[3] https://saltpack.org
[4] https://keys.pub