Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Build + test, then on a version tag (`vX.Y.Z`) attach wheels + sdist to a GitHub Release.
# crates.io is published manually (`cargo publish`). No PyPI — install the Python package from a
# release wheel or via `pip install git+https://github.com/prostomarkeloff/difflib-fast`.
#
# No secrets needed — the GitHub Release uses the built-in GITHUB_TOKEN.
# crates.io is published manually (`cargo publish`), and so is PyPI: download the release's
# wheels + sdist and `uv publish` them. Nothing here needs a secret — the GitHub Release uses the
# built-in GITHUB_TOKEN.
#
# abi3 (pyo3 abi3-py39) → one wheel per platform/arch works on CPython 3.9+, so no per-Python matrix.
name: CI
Expand Down
21 changes: 9 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,27 +253,24 @@ Swap `difflib.SequenceMatcher(...).ratio()` for `difflib_fast.ratio(...)` and th
back — hundreds of times faster per call, and **thousands of times** faster when you score a whole
corpus. That's the entire change: `import difflib_fast`.

**No PyPI** — `pip install difflib-fast` won't work. Two ways to install:

**1. Prebuilt wheel — no Rust toolchain needed.** The wheels are `cp39-abi3`, so one wheel per platform
works on **every CPython ≥ 3.9, including 3.14**. GitHub Releases isn't a package index, so pip can't
pick the wheel for you — grab the one for your platform from the
[Releases page](https://github.com/prostomarkeloff/difflib-fast/releases/latest) and install it by URL:

```bash
# macOS Apple Silicon — swap the filename for your platform (see below):
pip install https://github.com/prostomarkeloff/difflib-fast/releases/download/v0.3.5/difflib_fast-0.3.5-cp39-abi3-macosx_11_0_arm64.whl
pip install difflib-fast
```

| platform | wheel suffix |
The wheels on [PyPI](https://pypi.org/project/difflib-fast/) are `cp39-abi3`, so one wheel per
platform works on **every CPython ≥ 3.9, including 3.14** — no Rust toolchain needed:

| platform | wheel |
|---|---|
| macOS Apple Silicon | `…-macosx_11_0_arm64.whl` |
| macOS Apple Silicon | `…-macosx_11_0_arm64.whl` (ships the Metal GPU path) |
| macOS Intel | `…-macosx_10_12_x86_64.whl` |
| Linux x86_64 | `…-manylinux_2_17_x86_64.manylinux2014_x86_64.whl` |
| Linux aarch64 | `…-manylinux_2_17_aarch64.manylinux2014_aarch64.whl` |
| Windows x64 | `…-win_amd64.whl` |

**2. From source — needs a Rust toolchain** (pip drives maturin automatically, no manual build):
The same wheels are attached to every
[GitHub release](https://github.com/prostomarkeloff/difflib-fast/releases/latest). Any other
platform builds from source — pip drives maturin, so it only needs a Rust toolchain:

```bash
pip install git+https://github.com/prostomarkeloff/difflib-fast
Expand Down
Loading