Awesome
<p align="center"> <img src="https://github.com/theborakompanioni/nostr-spring-boot-starter/blob/master/docs/assets/images/logo.png" alt="Logo" width="255" /> </p>nostr-spring-boot-starter
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:
nostr-proto
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"];
}
[...]
Table of Contents
Install
Download from Maven Central.
Gradle
repositories {
mavenCentral()
}
implementation "io.github.theborakompanioni:nostr-proto:${bitcoinSpringBootStarterVersion}"
Examples
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). |
Development
Requirements
- java >=21
- docker
Build
./gradlew build -x test
Test
./gradlew test integrationTest --rerun-tasks --no-parallel
Run full test suite (including load tests):
CI=true ./gradlew test integrationTest --rerun-tasks --no-parallel
Contributing
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.
Resources
- 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
License
The project is licensed under the Apache License. See LICENSE for details.