Palpo
Active betaA Matrix homeserver in Rust built on the Salvo web framework and PostgreSQL.
homeserver · licence Apache-2.0
- Server
- Last commit
- today 4 Nov 2026
- Commits, last year
- 513 219 in 90 days
- Authors, 90 days
- 7 12 in a year, 13 ever
- Bus factor
- 1 authors making half of last year's commits
- Last release
- v0.5.0 3 Nov 2026 · 6 tags in a year
- Lines of code
- 162k Rust
AI
AI policy
What the project says about AI-made contributions
No policy found (fits the chosen stance)(against the chosen stance)AI in development
Whether the developers use AI tools on the repository
Regular (fits the chosen stance)(against the chosen stance)Collector: 128 of 513 commits in the last year credit an AI tool (24.9 %): claude 127, copilot 1. 0 agent files, 0 AI workflows. A lower bound: most AI use leaves no trace.
- 128 of 574 non-bot commits in the last 365 days (22.3 %) carry an AI co-author trailer or similar
- github.com/palpo-im/palpo/commit/7380829f65a59faa8fd5ca7f15545bbc8932c689
- github.com/palpo-im/palpo/commit/1032153ebd80c664b25135b7716fa72fcc92fe0f
- github.com/palpo-im/palpo/commit/382114a66d6b25697d5b6b5fa0ff62714b969358
-
7380829f62026-10-02 claude -
1032153eb2026-10-01 claude -
382114a662026-10-01 claude -
d7bd5bd432026-09-26 claude -
57ba404ea2026-09-26 claude
AI in the product
Whether the product itself has AI features
None found (fits the chosen stance)(against the chosen stance)Activity
Languages
Features
| Feature | Value | How we know | Evidence |
|---|---|---|---|
| Language | Rust | — | — |
| Database | yes PostgreSQL | claimed | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
| Federation | Yes: Yes | claimed | — |
| Spec versions | yes | code | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
| Appservices | Yes: Yes | claimed | — |
| Admin API | Yes: Yes | claimed | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
| OIDC delegation (MAS) | Yes: Yes MSC3861: stable | code | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
| Native sliding sync | Yes: Yes MSC4186: unstable | code | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
| Workers / scaling | Not found: Not found | — | — |
| Authenticated media | Yes: Yes MSC3916: stable | code | github.com/palpo-im/palpo/blob/d086e4502bb7f163d |
MSCs
| MSC | Title | In this server | Flag | Spec | Source |
|---|---|---|---|---|---|
| MSC1659 | Proposal: Change Event IDs to Hashes | stable | — | merged | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC1763 | Proposal for specifying configurable message retention periods | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC1767 | Extensible event types & fallback in Matrix (v2) | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC1884 | Proposal to replace slashes in event IDs | stable | — | merged | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2241 | Key verification in DMs | stable | — | merged, v1.1 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2246 | Asynchronous media uploads | stable | — | merged, v1.7 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2285 | Private read receipts | stable | — | merged, v1.4 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2409 | Proposal to send typing, presence and receipts to appservices | stable | — | merged, v1.13 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2432 | Updated semantics for publishing room aliases | stable | — | merged, v1.2 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2444 | peeking over federation via /peek | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2448 | Using BlurHash as a Placeholder for Matrix Media | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2545 | Image Packs (Emoticons & Stickers) | stable | — | merged, v1.19 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2654 | Unread counts | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2659 | Application service ping endpoint | stable | — | merged, v1.7 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2666 | Get rooms in common with another user | stable | — | merged, v1.19 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2702 | Specifying semantics for Content-Disposition on media | stable | — | merged, v1.12 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2747 | VoIP call transfers | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2753 | Peeking via sync (take 2) | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2828 | Proposal to restrict allowed user IDs over federation | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2836 | Twitter-style Threading | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2858 | Multiple SSO Identity Providers | stable | — | merged, v1.1 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2867 | Marking rooms as unread | stable | — | merged, v1.12 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2870 | Protect server ACLs from redaction | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2918 | Refresh tokens | stable | — | merged, v1.3 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2946 | Spaces Summary | stable | — | merged, v1.2 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2965 | OAuth 2.0 Authorization Server Metadata discovery | stable | — | merged, v1.15 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC2967 | API scopes | stable | — | merged | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3026 | "busy" presence state | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3030 | Jump to date API endpoint | stable | — | merged, v1.6 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3061 | Sharing room keys for past messages | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3202 | Encrypted appservices | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3230 | Spaces top level order | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3231 | Token authenticated registration | stable | — | merged, v1.2 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3245 | Voice messages (using extensible events) | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3246 | Audio waveform for extensible events | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3266 | Room summary API | stable | — | merged, v1.15 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3381 | Polls (mk II) | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3391 | API to delete account data | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3401 | Native Group VoIP Signalling | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3417 | Call room room type | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3488 | Extending events with location data | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3489 | Sharing streams of location data with history | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3551 | Extensible Events - Files | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3552 | Extensible Events - Images and Stickers | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3553 | Extensible Events - Videos | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3554 | Extensible Events - Translatable Text | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3575 | Sliding Sync (aka Sync v3) | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3618 | Proposal to simplify federation `/send` response | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3672 | Sharing ephemeral streams of location data | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3723 | Federation `/versions` | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3787 | Allowing knocks to restricted rooms | stable | — | merged, v1.3 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3814 | [WIP] MSC3814: Dehydrated devices with SSSS | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3827 | Filtering of `/publicRooms` by room type | stable | — | merged, v1.4 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3843 | Reporting content over federation (API approach) | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3856 | Threads List API | stable | — | merged, v1.4 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3861 | Next-generation auth for Matrix, based on OAuth 2.0/OIDC | stable | — | merged, v1.15 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3882 | Allow an existing session to sign in a new session | stable | — | merged, v1.7 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3884 | Sliding Sync Extension: E2EE | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3885 | Sliding Sync Extension: To-Device messages | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3916 | Authentication for media | stable | — | merged, v1.11 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3927 | Extensible Events - Audio | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3930 | Polls push rules/notifications | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3931 | Push rule condition for room version features | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3932 | Extensible events room version push rule feature flag | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3952 | Intentional Mentions | stable | — | merged, v1.7 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3954 | Extensible Events - Text Emotes | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3955 | Extensible Events - Automated event mixin (notices) | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3956 | [WIP] MSC3956: Extensible Events - Encrypted Events | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3960 | Sliding Sync Extension: Receipts | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC3983 | Sending One-Time Key (OTK) claims to appservices | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4075 | MatrixRTC invites and notifications | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4095 | Bundled URL previews | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4108 | Mechanism to allow OAuth 2.0 API sign in and E2EE set up via QR code | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4121 | `m.role.moderator` `/.well-known/matrix/support` role. | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4125 | Specify servers to join via for federated invites | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4133 | Extending User Profile API with Key:Value Pairs | stable | — | merged, v1.16 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4140 | Cancellable delayed events | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4143 | MatrixRTC – Real-time communication over Matrix | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4155 | Invite filtering | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4166 | Specify `/turnServer` response when no TURN servers are available | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4171 | Service members | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4175 | Profile field for user time zone | stable | — | merged, v1.16 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4180 | Add a stable flag to MSC3916 | stable | — | merged | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4186 | Simplified Sliding Sync | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4190 | Device management for application services | stable | — | merged, v1.17 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4191 | Account management for OAuth 2.0 API | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4195 | LiveKit transport for MatrixRTC | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4203 | Sending to-device events to appservices | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4230 | Flag for animated images | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4259 | Profile Update EDUs for Federation | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4262 | Sliding Sync Extension: Profile Updates | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4267 | Automatically forgetting rooms on leave | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4268 | Sharing room keys for past messages | stable | — | merged, v1.19 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4274 | Inline media galleries via msgtypes | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4278 | Media preview controls | stable | — | merged | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4284 | Policy Servers | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4293 | Redact on kick/ban | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4306 | Thread Subscriptions | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4308 | Thread Subscriptions extension to Sliding Sync | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4310 | MatrixRTC decline `m.rtc.decline` | unstable | — | closed | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4311 | Ensuring the create event is available on invites | stable | — | merged, v1.16 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4319 | Room member events for invite and knock rooms in the `/sync` response | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4323 | User suspension & locking endpoints | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4334 | Add `m.room.language` state event. | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4354 | Sticky Events | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4359 | "Do not Disturb" notification settings | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4362 | Simplified Encrypted State Events | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4363 | OAuth step up authentication | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4380 | Invite blocking | stable | — | merged, v1.18 | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4383 | Client-Server Discovery of Server Version | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4388 | Secure out-of-band channel for sign in with QR | unstable | — | fcp | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4406 | `M_SENDER_IGNORED` error code | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4439 | Encryption key URIs in `/.well-known/matrix/support` | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4466 | Altering profile change propagation | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4484 | Server Administration OAuth Scope | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4494 | Membership-based invite blocking | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4495 | Selective Presence | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4532 | Revised Social Presence | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4540 | `m.admin` capability | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
| MSC4559 | Sliding Sync Extensions: Presence | unstable | — | open | github.com/palpo-im/palpo/blob/d086e4502 |
Health signals
- Bus factor (last year)
- 1
- Issue first response
- not measured (the forge did not give it)
- Release cadence
- 6 tags in the last year, latest v0.5.0 (3 Nov 2026)
- CI
.github/workflows/complement.yml.github/workflows/operations-rust.yml.github/workflows/quality-control.yml- Tests
- test files found
- Security policy
- none found
- Licence
- Apache-2.0
- Funding
- none listed
- Telemetry SDKs in manifests
- none found
Repositories
| Repository | Role | Activity | Last commit | Commits 1y | Authors 90d | Measured at |
|---|---|---|---|---|---|---|
| github.com/palpo-im/palpo | main | Active | 4 Nov 2026 | 513 | 7 | d086e4502 |
Notes
Maturity is our reading (not on matrix.org). An older copy lives at github.com/palpo-matrix-server/palpo.
Researched by an AI agent (Claude) on 5 Nov 2026, not checked by a person; metrics collected on 5 Nov 2026. Source file: data/projects/server/palpo.yaml. Spotted a mistake? Open an issue with a link.