Spring boot starter projects for building Nostr applications. Whether you're building your own client or custom relay software, this framework provides most of what you need to write scalable and efficient solutions effortlessly.
Note: Most code is still experimental - this is work in progress.
Planned:
See nostr-proto for protobuf definitions of core nostr concepts used throughout most modules (e.g. events, filters, etc.).
message Event {
bytes id = 1 [json_name = "id"];
bytes pubkey = 2 [json_name = "pubkey"];
uint64 created_at = 3 [json_name = "created_at"];
uint32 kind = 4 [json_name = "kind"];
repeated TagValue tags = 5 [json_name = "tags"];
string content = 6 [json_name = "content"];
bytes sig = 7 [json_name = "sig"];
}
[...]
Download from Maven Central.
repositories {
mavenCentral()
}
implementation "io.github.theborakompanioni:nostr-proto:${bitcoinSpringBootStarterVersion}"
This project contains various examples that are stand-alone applications showing basic usage of the functionality provided.
Application | Description |
---|---|
nostr-client | A simple Nostr client example application that subscribes to all kind 1 notes. |
nostr-relay | A simple Nostr relay example application. |
nostr-shell | A simple Nostr shell example application, e.g. to "mine" notes (NIP-13). |
- java >=21
- docker
./gradlew build -x test
./gradlew test integrationTest --rerun-tasks --no-parallel
Run full test suite (including load tests):
CI=true ./gradlew test integrationTest --rerun-tasks --no-parallel
All contributions and ideas are always welcome. For any question, bug or feature request, please create an issue. Before you start, please read the contributing guidelines.
- nostr (GitHub): https://github.com/nostr-protocol/nostr
- NIPs (GitHub): https://github.com/nostr-protocol/nips
- nostr.com: https://nostr.com
- nostr Relay Registry: https://nostr-registry.netlify.app
- awesome-nostr (GitHub): https://github.com/aljazceru/awesome-nostr
- protocol-buffers: https://developers.google.com/protocol-buffers/docs/proto3#json
The project is licensed under the Apache License. See LICENSE for details.