Relay is simply a data store with some basic realtime features, why not have http as an option for more static apps?

Reply to this note

Please Login to reply.

Discussion

If you need an API to publish or receive events over WebSockets from the command line, you can use this one (there is also a prototype HTTP client and server that sends/receives #nostr events) https://github.com/pedro-vicente/nostr_client_relay

This is cool, but I would rather be able to use curl and in some nostr apps (like nblog) I would prefer to just be able to make a one off http request on the server rather than opening a websocket connection.

That doesn't justify making the protocol a much more complicated thing for everybody. WebSockets are simple, simpler than HTTP and REST, to be fully honest. If you don't like them that means you're just not used to them. You can use a Nostr library that abstracts that for you.

If you want a curl-like experience on the CLI, use https://github.com/fiatjaf/nak

Yes, that was kind of what my point was “if it ain't broke, don't fix it”. As #nostr devs, we shouldn’t have to deal with the underlying transport, we just use libraries that abstract that from us. I believe most languages have a WebSockets library. In my case, when I started with Nostr, it took me a week to find a good C++ library that I was happy with, but now I just use it and don’t care what happens under the hood. And because there was no Nostr C++ API, I made one. Check it out https://pedro-vicente.net/nostr/nostr.html

We should strive to have just one way of doing things.