https://github.com/cococry/faith
High performance instant messaging
https://github.com/cococry/faith
freetype harfbuzz messaging messenger native native-ui opengl rust vulkan
Last synced: 11 days ago
JSON representation
High performance instant messaging
- Host: GitHub
- URL: https://github.com/cococry/faith
- Owner: cococry
- Created: 2026-06-01T09:26:26.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-07-23T19:30:48.000Z (17 days ago)
- Last Synced: 2026-07-23T21:10:52.847Z (17 days ago)
- Topics: freetype, harfbuzz, messaging, messenger, native, native-ui, opengl, rust, vulkan
- Language: Rust
- Homepage:
- Size: 13.2 MB
- Stars: 39
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# faith
> [!WARNING]
> Faith is in active pre-alpha development and is, from a user's point of view, currently unusable for its intended purpose.
> However, this will change soon™.

**faith is an instant messenger optimized for security,
native performance & user customization.**
The ***faith*** [client](https://github.com/cococry/faith/tree/main/src) is designed around native, GPU accelerated rendering
of arbitrarily large text message scrolls.
It implements a custom text layout and rendering engine, supporting
Unicode, international scripts, emoji, bidirectional text, ligatures
and shaped glyphs.
The user interface is rendered through an optimized rendering backend abstraction over Vulkan and OpenGL.
Windowing is handled by the implemented backends, which currently include **X11** and **Wayland**.
The ***faith*** [server](https://github.com/cococry/faith/tree/main/faithd) is designed around security & low latency. It is written from scratch in C,
supports concurrent networking, implements a custom binary protocol and uses TLS for wire security.
## Current features
**UI related:**
- X11/Wayland windowing backend
- Vulkan rendering backend
- Modern OpenGL rendering backend
- Instanced, single-drawcall glyph rendering
- Full emoji support
- Unicode, grapheme and bidi support
- Ligatures and text shaping with HarfBuzz
- Multidirectional text paragraphs
- Paragraph layouting engine
**Network related:**
- Concurrent server written in C
- Scalable to many clients with `epoll()` mechanics
- TCP transport secured with TLS via OpenSSL
- Basic binary protocol over wire
- In-memory table of online clients
- Support for multiple devices per client
- Secure device-linking system
- Client-to-client message routing
## Build & Run
As faith is written in Rust, use cargo to build:
```console
git clone https://github.com/cococry/faith
cd faith
cargo build --release
```
Run it directly:
```console
./target/release/faith
```
Or install it into your Cargo binary directory:
```console
cargo install --path .
faith
```
Make sure `~/.cargo/bin` is in your `PATH` env variable.
## Contributing to faith
See the [contribution manual](https://github.com/cococry/faith/blob/main/CONTRIBUTING.md).