Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
Persephone은 Rust와 Tauri 기반 초기 개발 단계의 데스크톱 Matrix 클라이언트
A Rust and Tauri desktop Matrix client in early development. Merovingian is a primary integration target, with security boundaries central to the project’s plans.
소셜Rust · SvelteGitHub @OMG-Software온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Security-first desktop Matrix client in Rust for Windows, Linux and macOS, built to withstand targeted attacks. Early development — not ready for use.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Persephone is a Matrix desktop client for Windows, Linux and macOS, written in Rust. It is tested against Merovingian first and works with other standard homeservers. The first release will have one account, rooms, message history, text and image messages, and end-to-end encrypted chats. It is made for everyone, but engineered to withstand a targeted attack, not only everyday threats.
Project page: https://omg-software.github.io/Persephone/ (source in
site/).
[!WARNING] Persephone is in early development. No milestone has passed its acceptance gates, and its production security gates are open. Do not use it for real or high-risk conversations yet.
A Windows development build in demo mode (--demo), which shows synthetic
rooms and stores nothing.
Hostile room names and messages stay inert text. The markup and the
javascript: link below do not run. The right-to-left override still
reverses its own line, but bidirectional isolation keeps it out of the text
around it.
The milestone status lists each deliverable. The feasibility workbench lists recorded results and open gates.
| OS | State |
|---|---|
| Windows | Runs. Live-tested against disposable Merovingian and Synapse servers, and with Element Web. |
| macOS | Builds and passes CI. It has its Keychain vault, prompts and UI host, but it has never run with a display. Its file panels, link opening and idle lock are new and have not yet been through macOS CI. |
| Linux | Builds and passes CI. It has its Secret Service vault, GTK prompts and file choosers, and a UI host with a systemd memory cap, but the app has never been launched with a display. |
On Windows, the app can do these things today:
.well-known discovery and browser-based OIDC sign-in. No live
OAuth-provider run is recorded; see proposed
ADR-0027
and ADR-0030.The current source also adds per-room drafts, local room organisation, bounded cache search with filters, ignore and report controls, date navigation, shared pins, attachment browsing, and a connection health panel. These tools keep Matrix authority in the core. Search terms stay local; date navigation and attachment browsing request room history. Shared pins expose event references as room state. See Room tools. Automated checks are recorded in the verification record. Native UI and live-server acceptance remain open. This does not establish security readiness.
Not done yet: Linux and macOS runs, keyboard and screen-reader checks, signed releases, and an independent security review.
The latest pre-release
is the newest build of main. It is unsigned, and it is replaced after each
merge. A build publishes only if its commit is still the tip of main when
the build ends. After quick merges, latest can therefore be behind main
until the newest build ends. To see which build you have, read the revision
in the app's version line. No signed release is available yet. See
Releases.
Persephone runs as separate processes, so that the code that draws hostile content holds no secrets (ADR-0004).
flowchart LR
S["Homeserver"] <-->|"TLS"| C["Core: persephone<br/>sessions, Matrix SDK, keys, stores"]
C -->|"Bounded text and pixels"| U["UI: persephone-ui<br/>Tauri web view, no keys"]
U -->|"Narrow, validated requests"| C
C -->|"Encoded image"| W["Media worker<br/>WebAssembly decoder"]
W -->|"Bounded pixels"| C
crates/core). The entry process. It owns the
sessions, the Matrix SDK and its cryptography, the encrypted stores, the keys
and the media broker.src-tauri/, frontend/). A keyless Tauri
host with a bundled Svelte interface. It relays each allowed command to the
core as one bounded frame.여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗