Thanks to visit codestin.com
Credit goes to github.com

Skip to content

palpo-im/palpo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Palpo: A High-Performance Matrix Homeserver

License Rust Matrix

Palpo is a next-generation Matrix homeserver implementation written in Rust, designed for high performance, scalability, and robust federation. Built on the Salvo web framework and PostgreSQL database, Palpo delivers enterprise-grade real-time messaging and collaboration while maintaining minimal operational overhead.


🌟 What is Matrix?

Matrix is an open standard for decentralized, real-time communication. It enables:

  • End-to-end encrypted messaging - Secure conversations by default
  • Federated architecture - No single point of control or failure
  • Interoperability - Bridge with other chat platforms (Slack, Discord, IRC, etc.)
  • VoIP and Video Calling - Built-in support for voice and video
  • Rich messaging - Reactions, threads, file sharing, and more

Learn more at matrix.org


✨ Why Palpo?

Performance First

  • Built with Rust for memory safety and zero-cost abstractions
  • Powered by Salvo web framework for high-throughput async I/O
  • PostgreSQL backend for reliable data persistence and ACID compliance
  • Optimized for low latency and high concurrency

Developer Friendly

  • Clean, modular codebase
  • Well-documented APIs
  • Docker-ready deployment

Resource Efficient

  • Minimal memory footprint compared to reference implementations
  • Efficient database query patterns
  • Smart caching strategies
  • Scales horizontally

πŸš€ Quick Start

Try Our Demo Server

⚠️ IMPORTANT: Test Server Notice

Our test server is for evaluation and testing purposes only:

  • URL: https://test.palpo.im
  • ⚠️ All data on this server will be periodically deleted without notice
  • Do NOT use for production or store important conversations
  • Expected to be reset frequently for testing purposes

Connect with Cinny (Web Client)

  1. Open Cinny
  2. Click "Edit" on the homeserver selection
  3. Enter https://test.palpo.im as your custom homeserver
  4. Create a test account and start chatting!

Connect with Element (Desktop/Mobile)

  1. Download Element
  2. On login screen, click "Edit" next to the homeserver
  3. Enter https://test.palpo.im
  4. Register or login

Production Server:


πŸ“¦ Installation

Prerequisites

  • Rust 1.89 or higher
  • PostgreSQL 16 or higher
  • Linux, macOS, or Windows (WSL2 recommended)

Build from Source

# Clone the repository
git clone https://github.com/palpo-im/palpo.git
cd palpo

# Build the project
cargo build --release

# Copy example configuration
cp palpo-example.toml palpo.toml

# Edit configuration (set your domain, database credentials, etc.)
nano palpo.toml

# Run the server
./target/release/palpo

Docker Deployment

# Pull the image
docker pull ghcr.io/palpo-im/palpo:latest

# Run with docker-compose
cd deploy/docker
docker-compose up -d

See installation for detailed deployment instructions.


πŸ§ͺ Current Progress

We use Complement for comprehensive end-to-end testing against the Matrix specification.

  • Test Results: test_all.result.jsonl
  • Test Coverage: Continuously improving compliance with Matrix spec
  • Federation: Active testing with other homeserver implementations

Supported Features

βœ… Client-Server API

  • User registration and authentication
  • Room creation and management
  • Message sending and retrieval
  • Typing indicators and read receipts
  • Presence tracking
  • Media upload and download
  • Search functionality

βœ… Server-Server API (Federation)

  • Event signing and verification
  • Room state resolution
  • Backfill and history visibility
  • Public room directory federation
  • Server key exchange

βœ… End-to-End Encryption

  • Device management
  • Key sharing and backup
  • Cross-signing support

🀝 Contributing

We welcome contributions of all kinds! Whether you're:

  • πŸ› Fixing bugs
  • ✨ Adding features
  • πŸ“ Improving documentation
  • πŸ§ͺ Writing tests
  • 🎨 Improving UX


πŸ™ Acknowledgments

Palpo stands on the shoulders of giants. We're grateful to these projects:

  • Conduit - Pioneering lightweight Matrix homeserver in Rust
  • Ruma - Essential Matrix types and protocol implementations
  • Tuwunel - Innovative Matrix server architecture insights
  • Salvo - High-performance async web framework
  • Matrix.org - For creating and maintaining the Matrix protocol

πŸ“„ License

Palpo is licensed under the Apache License 2.0. See LICENSE for details.


πŸ”— Links


⚠️ Important Notices

Test Server Data Retention

The test server at test.palpo.im is for evaluation only.

  • All accounts, rooms, and messages may be deleted at any time
  • Data is not backed up
  • Service may be interrupted for updates
  • Do not rely on this server for any important communications

Production Use

Palpo is under active development. While we strive for stability:

  • Always backup your database
  • Test updates in a staging environment
  • Monitor server logs and performance

Built with ❀️ by the Palpo community

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages