Skip to content

Fully-modular TypeScript implementation of the Nostr protocol, oriented to web standards and edge environments

License

Notifications You must be signed in to change notification settings

hasundue/lophus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

45c93ed Β· Feb 15, 2024
Feb 11, 2024
Feb 11, 2024
Feb 15, 2024
Feb 11, 2024
Feb 15, 2024
Oct 17, 2023
May 18, 2023
Feb 10, 2024
Feb 12, 2024
Feb 11, 2024
Oct 12, 2023

Repository files navigation

Lophus

Warning
Still under development and not ready for use.

CI codecov

Lophus is a TypeScript library for development of Nostr clients and relays, oriented to web standards and edge environments.

Concept

  • Modular πŸ”Œ - NIPs and high-level interfaces are implemented as optional TypeScript modules, which enables you to keep an app as small as possible.
  • Portable πŸ“¦ - The core modules are build upon Web Standard APIs, which makes it possible to run on various environment.
  • Productive 🌊 - Declarative interfaces let you focus on the data flow rather than underlying logic, and strict type checking helps you to avoid runtime errors.
  • Compatible 🀝 - Shares the same data structure for events as nostr-tools.

Documentation

Supported NIPs

  • NIP-01: Basic protocol
  • NIP-02: Contact list
  • NIP-07: window.nostr capability for web browsers
  • NIP-42: Client authentication

References

Development of Lophus is inspired by the following projects:

  • NIPs - Nostr Implementation Possibilities
  • nostr-tools - Reference implementation of the protocol in TypeScript
  • nostring - A Nostr relay library written in Deno
  • Hono - A fast, lightweight, and multi-platform Web framework for edges