Initial public repo: README, LICENSE, and logo
Sets up the Korax public Gitea presence with a comprehensive README targeting both end users and technical audiences, PolyForm Noncommercial license for the mailcore open-source engine, and the project logo. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
135
README.md
Normal file
135
README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
<div align="center">
|
||||
<img src="images/korax.png" alt="Korax" width="160"/>
|
||||
|
||||
# Korax
|
||||
|
||||
**PGP-First Email. Private by Default.**
|
||||
|
||||
[](LICENSE)
|
||||
[]()
|
||||
[]()
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
Korax is an email client built around a single principle: **encryption should be the default, not the exception.**
|
||||
|
||||
Most clients bolt PGP on as an afterthought — a plugin, a hidden setting, a third-party extension. Korax is designed from the ground up so that signing, encryption, and key management are a seamless part of your everyday workflow. Your mail stays between you and the people you write to.
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
- **PGP encryption and signing — native, not a plugin.** Compose encrypted mail as naturally as plain text.
|
||||
- **TOFU trust model.** "Trust On First Use" with visual indicators: see at a glance whether a contact's key is known, trusted, or changed.
|
||||
- **No tracking pixels.** Remote images are blocked by default. Autoload only for contacts whose public key you have saved.
|
||||
- **Local-first.** All messages cached in SQLite on your device. Instant load, works offline, nothing sent to any cloud.
|
||||
- **Multi-language.** English, German, Spanish, Finnish, Russian, Swedish.
|
||||
- **Linux: always free, always fully unlocked.** No paywall, no nag screens. Honor system.
|
||||
|
||||
---
|
||||
|
||||
## Download
|
||||
|
||||
### Linux (AppImage)
|
||||
|
||||
The Linux release is a self-contained AppImage — no installation required.
|
||||
|
||||
1. Download `Korax-x86_64.AppImage` from the [Releases](../../releases) page.
|
||||
2. Make it executable:
|
||||
```bash
|
||||
chmod +x Korax-x86_64.AppImage
|
||||
```
|
||||
3. Run:
|
||||
```bash
|
||||
./Korax-x86_64.AppImage
|
||||
```
|
||||
|
||||
### macOS · Android · iOS
|
||||
|
||||
Coming soon.
|
||||
|
||||
---
|
||||
|
||||
## Free vs Pro
|
||||
|
||||
| Feature | Free | Pro |
|
||||
|---|:---:|:---:|
|
||||
| Send & receive email | ✓ | ✓ |
|
||||
| IMAP accounts | Max 3 | Unlimited |
|
||||
| Basic PGP encryption / decryption | ✓ | ✓ |
|
||||
| Import PGP identity | ✓ (max 1) | ✓ (unlimited) |
|
||||
| Generate PGP keypair | — | ✓ |
|
||||
| Keyserver auto-lookup (WKD) | — | ✓ |
|
||||
| Custom themes / swipe actions | — | ✓ |
|
||||
| **Linux** | **Always Pro** | **Always Pro** |
|
||||
|
||||
Pro is a one-time purchase. All Pro features are free during the current beta period.
|
||||
|
||||
---
|
||||
|
||||
## Under the Hood
|
||||
|
||||
### Architecture
|
||||
|
||||
```
|
||||
Flutter UI (Dart)
|
||||
│
|
||||
flutter_rust_bridge (FFI)
|
||||
│
|
||||
mailcore (Rust)
|
||||
├── IMAP client
|
||||
├── SMTP client
|
||||
├── SQLite storage
|
||||
├── MIME parser
|
||||
└── DNS SRV discovery
|
||||
```
|
||||
|
||||
The UI layer never blocks: all network and crypto operations run in Rust, communicated to Dart via an FFI bridge with zero copy overhead.
|
||||
|
||||
| Layer | Technology |
|
||||
|---|---|
|
||||
| UI | Flutter / Dart |
|
||||
| Core engine | Rust (`mailcore`) |
|
||||
| FFI bridge | flutter_rust_bridge |
|
||||
| Cryptography | sequoia-openpgp |
|
||||
| Local storage | SQLite |
|
||||
| State management | Riverpod |
|
||||
|
||||
---
|
||||
|
||||
### mailcore — Open Source Engine
|
||||
|
||||
`mailcore` is the Rust library at the heart of Korax. It handles everything below the UI:
|
||||
|
||||
- **IMAP client** — RFC 3501 compliant, UIDVALIDITY-aware, uses `BODY.PEEK[]` to preserve `\Seen` flag integrity
|
||||
- **SMTP client** — RFC 5321 with STARTTLS and SMTPS
|
||||
- **SQLite storage layer** — local message cache, folder state, account credentials
|
||||
- **MIME parser** — RFC 2045/2046 multipart handling
|
||||
- **DNS SRV auto-discovery** — resolves `_imaps._tcp` and `_submission._tcp` before falling back to defaults; same mechanism used by Thunderbird, Evolution, and others
|
||||
|
||||
The source is published here for transparency and community audit. It is licensed under the [PolyForm Noncommercial License 1.0.0](LICENSE) — free to read, study, and use for noncommercial purposes. Commercial use requires a separate agreement.
|
||||
|
||||
**What stays proprietary:**
|
||||
|
||||
The PGP/Sequoia integration, advanced privacy features, and the Flutter UI (`korax/`) are not published. A second Rust library — `mailmore` — will eventually hold additional proprietary engine capabilities.
|
||||
|
||||
---
|
||||
|
||||
## Security
|
||||
|
||||
**Reporting vulnerabilities:** Do not open a public issue. Contact the maintainer directly at the address shown in the application's About screen.
|
||||
|
||||
**Key storage:** Private keys are never written to SQLite or disk in plaintext. On every platform, they are stored in the OS secure enclave (iOS Keychain, macOS Keychain, Android Keystore).
|
||||
|
||||
---
|
||||
|
||||
## About
|
||||
|
||||
Created by **Eugen Kaparulin**.
|
||||
Official binaries distributed by **K-Ops Oy**.
|
||||
|
||||
© Eugen Kaparulin. All rights reserved.
|
||||
`mailcore` is published under the [PolyForm Noncommercial License 1.0.0](LICENSE).
|
||||
All other parts of Korax are proprietary.
|
||||
Reference in New Issue
Block a user