initial version (alpha)
This commit is contained in:
commit
d16d7a128f
57 changed files with 11087 additions and 0 deletions
113
README.md
Normal file
113
README.md
Normal file
|
@ -0,0 +1,113 @@
|
|||
# 🕊️ Eve Lite
|
||||
|
||||
> A lightweight, encrypted Nostr relay that puts your community's privacy first
|
||||
|
||||
Eve Lite is your personal gateway to secure, decentralized communities It creates encrypted "Closed Community Networks" (CCNs) where your messages stay truly private, from everyone.
|
||||
|
||||
## ✨ What makes Eve Lite special?
|
||||
|
||||
**Privacy by Design**: Unlike traditional Nostr relays where your messages are visible to everyone, Eve Lite encrypts everything. If someone gains access to the data, they'll only see encrypted gibberish.
|
||||
|
||||
**Extensible with Arxlets**: Think of Arxlets as mini-apps that run within your CCN. Want custom functionality? Write an Arxlet. Need to share functionality? Publish it for others to use.
|
||||
|
||||
**Dead Simple Setup**: No complex configurations or database management. Eve Lite handles the heavy lifting so you can focus on communicating.
|
||||
|
||||
**Invite-Only Networks**: Create closed communities with your friends, family, or team. Share invite codes to bring people into your private space.
|
||||
|
||||
## 🏗️ How it works
|
||||
|
||||
### Closed Community Networks (CCNs)
|
||||
|
||||
A CCN is like your own private island in the Nostr ocean. Each CCN has:
|
||||
|
||||
- **Unique encryption keys** - Messages are encrypted with network-specific keys
|
||||
- **Local relay instance** - Each member's own strfry relay runs locally on port 6942
|
||||
- **Persistent storage** - All messages are stored locally on each member's device and encrypted
|
||||
|
||||
### The Magic Behind the Scenes
|
||||
|
||||
1. **Encrypted Message Flow**: When you send a message, Eve Lite encrypts it before sending to remote relays
|
||||
2. **Smart Decryption**: Incoming encrypted messages are automatically decrypted and stored locally
|
||||
3. **Dual Relay System**: Remote encrypted storage + local decrypted access = best of both worlds
|
||||
4. **Event Deduplication**: Smart caching prevents processing the same event twice
|
||||
|
||||
### Arxlets: Your Extensibility Layer
|
||||
|
||||
Arxlets are JavaScript-based apps that add functionality to your CCN:
|
||||
|
||||
- Stored as Nostr events (kind 30420)
|
||||
- Compressed with Brotli for efficiency
|
||||
- Can be shared across networks
|
||||
- Perfect for custom UI components, utilities, or integrations
|
||||
|
||||
## 🔧 API Reference
|
||||
|
||||
Eve Lite exposes a RESTful API for building applications:
|
||||
|
||||
### CCN Management
|
||||
|
||||
- `GET /api/ccns` - List all CCNs
|
||||
- `POST /api/ccns/new` - Create a new CCN
|
||||
- `POST /api/ccns/join` - Join an existing CCN
|
||||
- `GET /api/ccns/active` - Get the active CCN
|
||||
- `POST /api/ccns/active` - Switch active CCN
|
||||
|
||||
### Events & Messages
|
||||
|
||||
- `POST /api/events` - Query events with filters
|
||||
- `PUT /api/events` - Publish a new event
|
||||
- `GET /api/events/:id` - Get specific event
|
||||
- `POST /api/sign` - Sign an event with your key
|
||||
|
||||
### Profiles & Identity
|
||||
|
||||
- `GET /api/avatars/:pubkey` - Get user avatar
|
||||
- `GET /api/profile/:pubkey` - Get user profile
|
||||
- `GET /api/pubkey` - Get your public key
|
||||
|
||||
### Arxlets
|
||||
|
||||
- `GET /api/arxlets` - List installed Arxlets
|
||||
- `GET /api/arxlets/:id` - Get specific Arxlet
|
||||
- `GET /api/arxlets-available` - Browse available Arxlets
|
||||
|
||||
## 🛠️ Development
|
||||
|
||||
### Running Tests
|
||||
|
||||
```bash
|
||||
bun test
|
||||
bun test --watch # Watch mode
|
||||
```
|
||||
|
||||
### Code Quality
|
||||
|
||||
This project uses Biome for linting and formatting:
|
||||
|
||||
```bash
|
||||
bunx @biomejs/biome check
|
||||
bunx @biomejs/biome format --write
|
||||
```
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Found a bug? Have a feature idea? Contributions are welcome!
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch: `git checkout -b my-cool-feature`
|
||||
3. Make your changes and add tests
|
||||
4. Submit a pull request
|
||||
|
||||
## 📝 License
|
||||
|
||||
AGPLv3. See LICENSE.md for details.
|
||||
|
||||
## 🙋♀️ Questions?
|
||||
|
||||
- Check out the [Arxlet documentation](/docs/arxlets) for extending functionality
|
||||
- Browse the source code - it's well-documented and approachable
|
||||
- Open an issue if you find bugs or have suggestions
|
||||
|
||||
---
|
||||
|
||||
_Built with ❤️ for privacy-conscious humans who believe communication should be truly private._
|
Loading…
Add table
Add a link
Reference in a new issue