Skip to main content

Textlane

Textlane is a Rust-native text processing pipeline: a replacement for unified whose plugins run natively, while existing JavaScript plugins can still join the same pipeline. One Rust crate ships to crates.io, npm and PyPI at one version.

Installation

pip install textlane

The wheel carries a prebuilt extension for your platform; no Rust toolchain is needed.

Usage

A processor chains plugins with use, as unified does, then parses, transforms and serializes text with process. Each language reaches the same crate; plugins are grouped by domain (md, html, mdx, nl) and named as the pipeline names them.

Rust:

use textlane::{Processor, html, md};

let processor = Processor::new()
    .with(md::Parse::default())
    .with(md::Gfm::default())
    .with(md::ToHtml::default())
    .with(html::Stringify::default())
    .freeze()?;
assert_eq!(processor.process("# hi")?.value, "<h1>hi</h1>");

Node.js:

import { textlane } from "textlane"
import * as html from "textlane/html"
import * as md from "textlane/md"

const file = await textlane()
  .use(md.parse())
  .use(md.gfm())
  .use(md.toHtml({ allowDangerousHtml: true }))
  .use(html.stringify())
  .process("# hi")
file.value // "<h1>hi</h1>"

Python:

from textlane import html, md, textlane

file = (
    textlane()
    .use(md.parse())
    .use(md.gfm())
    .use(md.to_html({"allowDangerousHtml": True}))
    .use(html.stringify())
    .process("# hi")
)
file["value"]  # "<h1>hi</h1>"

Node.js and Python also offer parse, run, stringify, data and freeze, with Node.js's process/run returning a Promise beside processSync/runSync, and Python's returning the result beside the coroutines aprocess/arun. Errors carry the crate's code, such as unknown-plugin. A JavaScript or Python function joins a pipeline as a unified attacher returning a transformer; it cannot add syntax, a parser or a compiler.

Documentation

Read the docs at textlane.dev.

License

MIT.

Metadata

Release files for textlane 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for textlane 0.5.0
File Actions
textlane-0.5.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details for textlane-0.5.0-cp39-abi3-win_arm64.whl
textlane-0.5.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for textlane-0.5.0-cp39-abi3-win_amd64.whl
textlane-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details for textlane-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl
textlane-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details for textlane-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl
textlane-0.5.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for textlane-0.5.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
textlane-0.5.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details for textlane-0.5.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
textlane-0.5.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for textlane-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
textlane-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details for textlane-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl

Total release size: 43.0 MB

Release files / textlane-0.5.0-cp39-abi3-win_arm64.whl

Download URL textlane-0.5.0-cp39-abi3-win_arm64.whl
Size 5.2 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
05b841dd4326e7bed4ac48e3436a975d875fc4e5a82e9865fcf7eb132da56944
BLAKE2b-256 checksum
How to use checksums
388afe649572f21922a2dbf34b759353d41b97b2e47bc81935d2a25d3925e616
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-win_amd64.whl

Download URL textlane-0.5.0-cp39-abi3-win_amd64.whl
Size 5.4 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f289e2b8c1f38dbe2b5c884db242ff90544167385bcae125560bd16da6c128ef
BLAKE2b-256 checksum
How to use checksums
d35f032ac4ef77f0ef8253f75d9d0201479a0368dfc740b55f09f5918a8b97df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL textlane-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 5.8 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
20a13ec61e6ac78c491f1f313e80ef9f7b72939ffb5adae900671ffe11e4d311
BLAKE2b-256 checksum
How to use checksums
397974d372b61caa91b9b7566d683613b9d16dbb481c662ffe37fe6ec9687359
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL textlane-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 5.5 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
8813ce92e6a8918251e8455fdefc168e9ab5775ab6a0ef0d7c4eefad588a4bde
BLAKE2b-256 checksum
How to use checksums
daa2a6350ee32550c649fa048fcbbb1599997758a33709061c4b78134d2aef90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL textlane-0.5.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 5.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
ace76e2194e2b3a488228e0e8fcc04ac77e16e4217d95436880c9a376e5a881b
BLAKE2b-256 checksum
How to use checksums
c7f107de314216ba7030d396a80c85fdc8837a7f5c6080379d66a737a43d4b76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL textlane-0.5.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 5.3 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
d2f6a6a2d3ab6c6ab4a4adf9ca224801ba3aa211e0c24562fdcd6e8598990234
BLAKE2b-256 checksum
How to use checksums
aa3de09a36444a793924b0efdd5af2b68633ce22a14c9ef14bf4f8a6d4fc211f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL textlane-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Size 5.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bd4b958340dfc46513181354dc3273568afa0b1e16d2e472609b1763eec73540
BLAKE2b-256 checksum
How to use checksums
f0dd83792a1c9aaa74802926609abdf4366797bbf11a5e196c773ecd29c55a13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / textlane-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL textlane-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 5.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
caaf96446834a9e64bac80ebc7b8f2bd1aae974f8d9c1d988e4552b92f9c3625
BLAKE2b-256 checksum
How to use checksums
db21fa336c6dce43fa75efc1483f1b91e8b2d66499d731ee52be2f5dc6d432e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for textlane 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page