processone/xmpp
59.0
Adequate · 2 October 2026
84.4k
lines of production code
Erlang
with C
2
measurements over time
What this system is
This system is an Erlang/Elixir library for handling the XMPP protocol, providing core infrastructure for building and parsing XMPP stanzas and addresses. It implements support for various XMPP extensions (XEPs), including CAPTCHA forms, HTTP file uploads, and pubsub metadata, while offering utilities for validating URIs, language tags, and JIDs. The library relies on C-based NIFs for performance-critical parsing tasks and is licensed under Apache 2.0.
Features
Add NIFs for validating XMPP URIs and language tags, and parsing JIDs
New C source files introduce Erlang NIFs that expose three capabilities: \xmpp\_uri:is\_valid/1\ validates strings against the RFC 7622 XMPP URI syntax, \xmpp\_lang:is\_valid/1\ validates language tags (including a workaround for Cisco Jabber's 'UTF-8' encoding suffix), and \jid:string\_to\_usr/1\ parses a JID string into its node, domain, and resource components.
_c\src · high confidence
Add support for XEP-0158 (CAPTCHA) and XEP-0363 (HTTP File Upload) data forms
The library now includes generated encoders and decoders for CAPTCHA data forms (XEP-0158) and HTTP File Upload data forms (XEP-0363). This enables applications to correctly parse and construct the specific data forms required for CAPTCHA challenges and file upload negotiations, ensuring compatibility with servers implementing these standards.
src · high confidence
Expanded XMPP protocol support and licensing update
This release adds support for numerous XMPP extensions (XEPs) including CAPTCHA forms (XEP-0158), HTTP File Upload (XEP-0363), PubSub metadata, push notification summaries (XEP-0357), and SASL SCRAM with multiple hash functions. It also introduces new namespaces for MUC stable IDs, MAM 2, Full Text Search, Inbox, JID Prep, Chat Markers, Message Moderation, and various MIX and PubSub features. The \xmpp.hrl\ header now includes macros for stanza type, from, and to, and switches to \include\_lib\ for fast\_xml. Additionally, the project has updated its licensing from GPL to Apache 2.0 and refreshed copyright years.
include · high confidence
Initial project scaffolding and build configuration
The repository is initialized with standard project metadata and build infrastructure. This includes a .gitignore file to exclude build artifacts and generated code, a CHANGELOG.md documenting the history up to version 1.13.5, and a README.md providing usage instructions for the Erlang/Elixir XMPP library. The build system is configured via a Makefile and rebar.config.script to support both rebar2 and rebar3, handling dependency resolution and compilation of C-based NIFs. Additionally, legal and community files (LICENSE.txt, CODE\_OF\_CONDUCT.md, CONTRIBUTING.md) and an Autoconf configure script are added to establish the project's licensing and contribution guidelines.
(repo-wide) · high confidence
Behavioural changes
Added ASN.1 definition for XMPP address type
The asn1 module now includes the XmppAddr.asn1 file, which defines the ASN.1 structure for the XMPP address type (id-on-xmppAddr) as an OID under the PKIX mechanisms, allowing the system to properly encode and decode XMPP addresses in protocol streams.
asn1 · high confidence
Test coverage
Added spec definitions for CAPTCHA, HTTP File Upload, PubSub metadata, and push summary forms
The specs directory now includes new configuration and XData form definitions for XEP-0158 (CAPTCHA), XEP-0363 (HTTP File Upload), XEP-0357 (Push Notifications summary), and PubSub metadata fields. These additions provide the structural definitions required to parse and validate these specific XMPP data forms.
specs · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 55 → 59 (+3.9)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 80 → 80 (+0.0)
- Architecture 99 → 83 (-16.1)
- Maturity 47 → 47 (+0.1)
- Readiness 47 → 68 (+20.7)
- Security 61 → 61 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (10)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (17 lines × 3) (src/xep0513.erl)
- Hotspot: src/xep0388.erl (src/xep0388.erl)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (src/xep0054.erl)
- No automated tests
- No tests found
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2
- Test reliability not included
New (7)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Duplicated block (16 lines × 3) (src/xep0513.erl)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (src/xep0054.erl)
- No dependency lockfile committed (rebar.config)
- Off-boarding risk: anonymized user #2
- Off-boarding risk: anonymized user #1
- Projects may be oversized for their cohesion
Changes since last survey
- 4 commits — 4 feature/other, 0 fixes
By area
- (root) — 2 commits
- .github/workflows — 1 commit
- include/xmpp_codec.hrl — 1 commit
Notable commits
- change: Add jid attribute to mentions
- change: Bump rebar3 version in hex github acion
- change: Release 1.13.5
- change: Update changelog
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
processone/xmpp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9ed1d5cb9acb698570b7764e6dfcf7bca6deeafb — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.