nostr libraries for golang
Go to file
mleku dea0bc6a97 fix relay interface thing 2024-04-11 23:16:44 +01:00
acl cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
auth partially working garbage collector purge 2024-03-26 17:33:00 +00:00
bech32encoding refactor relayinfo and add missing NIP support numbers to list 2024-03-21 09:56:37 +00:00
bunker removed deprecated usages from non-deprecated code 2024-02-25 21:57:18 +00:00
client refactoring eventstore interface and several other small things 2024-04-08 11:33:18 +01:00
connection cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
context cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
crypt removed deprecated usages from non-deprecated code 2024-02-25 21:57:18 +00:00
dns human readable names, deprecate all nip names 2024-02-25 20:47:53 +00:00
envelopes restore some old code with current library 2024-04-08 14:59:50 +01:00
event now saving event and all relevant keys 2024-04-03 18:15:59 +01:00
eventid cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
eventstore fix relay interface thing 2024-04-11 23:16:44 +01:00
filter partially working garbage collector purge 2024-03-26 17:33:00 +00:00
filters cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
hex cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
interfaces cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
keys now saving event and all relevant keys 2024-04-03 18:15:59 +01:00
kind converter for kinds to []uint16 2024-02-28 19:51:40 +00:00
kinds converter for kinds to []uint16 2024-02-28 19:51:40 +00:00
normalize first commit 2024-02-24 17:49:20 +00:00
nostrbinary cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
nson cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
number first commit 2024-02-24 17:49:20 +00:00
pointers cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
pool removed deprecated usages from non-deprecated code 2024-02-25 21:57:18 +00:00
quotes first commit 2024-02-24 17:49:20 +00:00
relayinfo refactor relayinfo and add missing NIP support numbers to list 2024-03-21 09:56:37 +00:00
relayws refactoring eventstore interface and several other small things 2024-04-08 11:33:18 +01:00
sdk removed deprecated usages from non-deprecated code 2024-02-25 21:57:18 +00:00
subscription refactoring eventstore interface and several other small things 2024-04-08 11:33:18 +01:00
subscriptionid cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
tag cleanup and rewrite internal imports 2024-02-24 18:10:10 +00:00
tags added convenience type converters 2024-02-28 20:38:57 +00:00
timestamp partially working, just with tag keys not yet 2024-04-11 23:03:48 +01:00
wire restore some old code with current library 2024-04-08 14:59:50 +01:00
.gitignore adding .gitignore, project icon, updating README.md 2024-03-10 14:20:03 +00:00
LICENSE.md first commit 2024-02-24 17:49:20 +00:00
README.md update logo to be green canary 2024-04-09 11:13:20 +01:00
go.mod refactoring eventstore interface and several other small things 2024-04-08 11:33:18 +01:00
go.sum refactor relayinfo and add missing NIP support numbers to list 2024-03-21 09:56:37 +00:00
icon.png update logo to be green canary 2024-04-09 11:13:20 +01:00
icon.svg update logo to be green canary 2024-04-09 11:13:20 +01:00

README.md

nostr canary

nostr

Tools for structuring, processing and encoding things for the nostr protocol.

This covers almost everything found in go-nostr except rewritten in fully idiomatic Go and restructured for better readability and organisation for a more friendly developer experience.

nostr-sdk is also included as it contains useful tools for client developers and is required for the algia fork postr found in replicatr

The eventstore is also found in here, but with only the badger back end and the hand coded, badly written binary encoding format for events is replaced with the use of the Gob codec, which is fine for internal data stores used only by a Go based project.

Perhaps later a full implementation of a gRPC/protobuf form of the entire protocol will follow, as it has performance advantages over JSON and broadly supported even by javascript based applications.

There is not very much documentation apart from a moderate effort to put proper godoc comments on everything, better documentation will come later.

Currently there is a set of packages named after NIPs, these will be refactored to have human readable names in the future, and for the support of any downstream users of this library, the existing references will be maintained via the use of symlinks and aliases where applicable with deprecation notices added when this is done.

This repo is being released independently as a service to fellow nostr developers who also like to use Go, as it is becoming stable and has numerous bugs from go-nostr fixed and has been restructured to be easier to navigate.

Usage

Be aware that you should pick a specific semver version when importing, as the main branch is unstable. See here for current tags.

Currently this library is still a little unstable in general, probably not really strictly correct that it already has a v1 prefix, but it is a fork.

Technically it can be said that a v1.1.x version string implies instability, when the API is 100% stable (it mostly already is) we will bump it to v1.2.0.