The Nostr C library provides an implementation of the Nostr protocol, including various NIPs (Nostr Improvement Proposals). This library aims to be highly portable, suitable for use in IoT environments, and provides bindings for integration with the GNOME desktop environment.
- Nostr event handling
- JSON (de)serialization with optional NSON support
- NIP implementations (e.g., NIP-04, NIP-05, NIP-13, NIP-19, NIP-29, NIP-31, NIP-34)
- Optional memory management handled by the library
- C compiler (GCC/Clang)
- CMake
- libsecp256k1
- libjansson (optional, for JSON parsing)
git clone https://github.com/chebizarro/nostrc.git
cd nostrc
mkdir build
cd build
cmake ..
make
sudo make install
This library includes various Nostr Improvement Proposals (NIPs):
- NIP-04: Encrypted Direct Messages
- NIP-05: Mapping Nostr keys to DNS-based identifiers
- NIP-13: Proof-of-Work
- NIP-19: Bech32-encoded entities
- NIP-29: Simple group management
- NIP-31: Alternative content
- NIP-34: GitHub-like repository management on Nostr
Contributions are welcome! Please open issues or submit pull requests on GitHub.
To add a new NIP:
- Create a new folder in the
nips
directory. - Implement the required functionality in C.
- Update the headers and add test cases.
- Ensure all tests pass and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.