1
1
# Lophus
2
2
3
- > ** Warning** \
4
- > Still under development and not ready for use.
3
+ > :construction : Still under development and not ready for use.
5
4
6
5
[ ![ CI] ( https://github.com/hasundue/lophus/actions/workflows/ci.yml/badge.svg?branch=main )] ( https://github.com/hasundue/lophus/actions/workflows/ci.yml )
7
6
[ ![ codecov] ( https://codecov.io/github/hasundue/lophus/branch/main/graph/badge.svg?token=s01IMg4nI8 )] ( https://codecov.io/github/hasundue/lophus )
8
7
9
- Lophus is a TypeScript library for development of [ Nostr] [ nostr ] clients and
10
- relays, oriented to web standards and edge environments.
8
+ Lophus is an experimental TypeScript library for development of [ Nostr] [ nostr ]
9
+ clients and relays, oriented to web standards and edge environments.
11
10
12
- ## Concept
11
+ ## Features
13
12
14
13
- ** Modular** 🔌 - NIPs and high-level interfaces are implemented as optional
15
- TypeScript modules, which enables you to keep an app as small as possible.
16
- - ** Portable** 📦 - The core modules are build upon
17
- [ Web Standard APIs] [ web-standard-api ] , which makes it possible to run on
18
- various environment.
19
- - ** Productive** 🌊 - Declarative interfaces let you focus on the data flow
20
- rather than underlying logic, and strict type checking helps you to avoid
21
- runtime errors.
14
+ TypeScript modules, which makes your apps as small as possible.
15
+ - ** Fast** ⚡ - Carefully designed to be performant. Fully asynchronous and
16
+ non-blocking. Use native code of a runtime via [ Web APIs] [ web-apis ] .
17
+ - ** Portable** 📦 - No runtime-specific code or external dependencies in the
18
+ core modules so that it can work on various platforms.
19
+ - ** Type-safe** 🛡️ - Thoroughly typed with insanity.
22
20
- ** Compatible** 🤝 - Shares the same data structure for events as
23
21
[ nostr-tools] [ nostr-tools ] .
24
22
25
- ## Documentation
23
+ ## Project Structure
26
24
27
- - [ API Reference] ( https://deno.land/x/lophus/mod.ts ) (WIP)
28
- - [ Lophus by Example] ( https://github.com/hasundue/lophus-by-example )
25
+ ### [ @lophus/nips ] ( https://github.com/hasundue/lophus/tree/main/nips )
29
26
30
- ## Supported NIPs
27
+ Provides a set of modules that implement the Nostr protocol and its extensions.
28
+ Supposed to be the entry point for most developers who want to use Lophus.
31
29
32
- - [x] [ NIP-01] ( https://github.com/nostr-protocol/nips/blob/master/01.md ) : Basic
33
- protocol
34
- - [x] [ NIP-02] ( https://github.com/nostr-protocol/nips/blob/master/02.md ) :
35
- Contact list
36
- - [ ] [ NIP-07] ( https://github.com/nostr-protocol/nips/blob/master/07.md ) :
37
- ` window.nostr ` capability for web browsers
38
- - [ ] [ NIP-42] ( https://github.com/nostr-protocol/nips/blob/master/42.md ) : Client
39
- authentication
30
+ ### [ @lophus/std ] ( https://github.com/hasundue/lophus/tree/main/std )
31
+
32
+ Provides high-level interfaces and utilities, and functionalities that depends
33
+ on third-party libraries.
34
+
35
+ ### [ @lophus/core ] ( https://github.com/hasundue/lophus/tree/main/core )
36
+
37
+ Contains the core modules that implement the basic architecture of Lophus. Used
38
+ for implementation of NIPs, or possibly your own Nostr-like protocols.
39
+
40
+ ### [ @lophus/lib ] ( https://github.com/hasundue/lophus/tree/main/lib )
41
+
42
+ General-purpose modules that are developed for Lophus, but not directly related
43
+ to the Nostr protocol. You may use them in any TypeScript project.
44
+
45
+ ### [ Benchmarks] ( https://github.com/hasundue/lophus/tree/main/bench )
46
+
47
+ Performance tests for Lophus and other Nostr libraries. Highly experimental.
48
+
49
+ ## Sponsors
50
+
51
+ ### [ Soapbox] ( https://soapbox.pub )
52
+
53
+ Software for the next generation of social media.
54
+
55
+ ![ Soapbox] ( https://avatars.githubusercontent.com/u/99939943?s=200&v=4 )
40
56
41
57
## References
42
58
@@ -50,7 +66,7 @@ Development of Lophus is inspired by the following projects:
50
66
51
67
<!-- Links -->
52
68
53
- [ web-standard-api ] : https://developer.mozilla.org/docs/Web/API
69
+ [ web-apis ] : https://developer.mozilla.org/docs/Web/API
54
70
[ nostr ] : https://nostr.com
55
71
[ nostr-nips ] : https://github.com/nostr-protocol/nips
56
72
[ modules ] : https://github.com/hasundue/lophus/tree/main/lib
0 commit comments