mdurl

Python port of the mdurl URL parsing and encoding utilities used by markdown-it

Library
PyPI
v0.1.2
17stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
33/100Needs Attention
Development Activity48
Maintenance0
Community16
Maturity56
Momentum12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
64/100Good
Architecture60
Code Quality72
Innovation40
Learning Curve85

mdurl is a small Python library providing URL parsing, normalization, encoding, decoding, and formatting utilities, ported line-for-line from the JavaScript mdurl package that underpins the markdown-it ecosystem. It exists primarily as a dependency of markdown-it-py, giving the Python CommonMark implementation the same URL-handling behavior as its JavaScript counterpart.

The library exposes focused functions for parsing a URL into its components, percent-encoding/decoding parts of a URL safely, and re-serializing a parsed URL back into a string, matching the exact edge-case behavior markdown-it relies on for link and autolink handling.

What You Get

  • A parse() function that decomposes a URL string into its constituent parts
  • encode()/decode() functions for safe percent-encoding and decoding of URL components
  • A format() function to re-serialize a parsed URL structure back into a string
  • Behavior ported directly from the JavaScript mdurl package for cross-implementation consistency
  • A minimal, dependency-free implementation suitable as a lightweight sub-dependency

Common Use Cases

  • Powering link and autolink URL handling inside markdown-it-py’s CommonMark parser
  • Normalizing or safely encoding URLs extracted from user-supplied Markdown content
  • Any Python project that needs JavaScript-mdurl-compatible URL parsing behavior for interoperability

Under The Hood

Architecture - The package is organized as small, single-purpose modules under src/mdurl: _parse.py handles URL decomposition, _encode.py/_decode.py handle percent-encoding, _format.py re-serializes parsed URLs, and _url.py defines the shared URL data structure, with init.py exposing the public parse/encode/decode/format functions. Tech Stack - Pure Python with no runtime dependencies, packaged via a standard pyproject.toml, and mirrors the reference JavaScript mdurl implementation’s function signatures and edge-case behavior closely enough to be a drop-in behavioral match. Code Quality - The tests/ directory includes dedicated test modules for each function (test_parse.py, test_encode.py, test_decode.py, test_format.py) plus shared fixtures under tests/fixtures/, and CI runs tests with coverage reporting via Codecov, indicating disciplined parity testing against the upstream JS behavior. API Design - The API surface is intentionally tiny — four top-level functions matching the original JS package’s naming — which keeps integration nearly zero-effort for any project (like markdown-it-py) that already expects mdurl’s specific parsing semantics.

Used by 9 apps in this directory

Python
100%
Apache 2.0

Agno

Devops · AI Development · Automation

41,774

Build, run, and manage agent platforms with a full production stack — SDK, runtime, and control plane included.

View details
93
Repo Health
87
Technical
67
Dependency
Built with
Python100%
Updated today
Python
59%
Apache 2.0

argilla

AI Development · Data Engineering

5,081

Collaborate on high-quality AI training data with a self-hosted annotation platform built for LLMs, NLP, and multimodal models.

View details
65
Repo Health
81
Technical
63
Dependency
Built with
Python59%
Jupyter Notebook21%
Updated 2 days ago
C++
69%
Apache 2.0

ClickHouse

Databases · Analytics · Data Engineering

49,325

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
68
Dependency
Built with
C++69%
Python13%
Updated today
Go
32%
Apache 2.0

CubeSandbox

Developer Tools · Security · AI Agents

11,247

Instant, concurrent, hardware-isolated MicroVM sandboxes for AI agents — E2B-API compatible, sub-60ms cold starts, and a built-in zero-trust egress proxy, all self-hostable at scale.

View details
83
Repo Health
88
Technical
63
Dependency
Built with
Go32%
Rust31%
C21%
Updated today
Python
83%
Apache 2.0

knowhere

AI Development · Developer Tools

2,515

Transform messy, unstructured documents into persistent, navigable memory that AI agents can actually use.

View details
83
Repo Health
75
Technical
70
Dependency
Built with
Python83%
HTML16%
Updated today
Python
61%
Apache 2.0

marimo

Developer Tools · Data Engineering

22,393

A reactive Python notebook that eliminates hidden state, runs reproducibly, and deploys as a web app or script — stored as pure Python, built for the AI era.

View details
90
Repo Health
91
Technical
66
Dependency
Built with
Python61%
TypeScript37%
Updated today
Rust
63%
MIT

PostgresML

Databases · AI Development

6,817

Run ML training and LLM inference natively inside PostgreSQL with GPU acceleration — no data movement required.

View details
51
Repo Health
76
Technical
65
Dependency
Built with
Rust63%
JavaScript11%
Updated 1 years ago
Python
94%
Apache 2.0

SWIRL

Search · Databases · Data Engineering

3,039

Federated AI search and RAG across 100+ enterprise sources—no data extraction, no vector database required.

View details
77
Repo Health
83
Technical
65
Dependency
Built with
Python94%
Updated 2 days ago
C
79%
AGPL 3.0

TDengine

Databases

25,068

A high-performance, open-source time-series database built in C for IoT, connected vehicles, and industrial monitoring workloads, with built-in stream processing, caching, and data subscription.

View details
98
Repo Health
71
Technical
70
Dependency
Built with
C79%
C++12%
Updated 3 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search