0.7.0
Install
Debian / Ubuntu (.deb)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide_0.7.0-1_amd64.deb
sudo apt install ./latexml-oxide_0.7.0-1_amd64.deb
Portable tarball (x86_64 Linux)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide-0.7.0-x86_64-unknown-linux-gnu.tar.gz
tar xzf latexml-oxide-0.7.0-x86_64-unknown-linux-gnu.tar.gz
sudo cp latexml-oxide-0.7.0-x86_64-unknown-linux-gnu/latexml_oxide /usr/local/bin/
Tarball users also need the runtime apt deps:
sudo apt install libxml2 libxslt1.1 libkpathsea6 texlive-latex-base texlive-latex-extra texlive-science
macOS (Apple Silicon)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide-0.7.0-aarch64-apple-darwin.tar.gz
tar xzf latexml-oxide-0.7.0-aarch64-apple-darwin.tar.gz
sudo cp latexml-oxide-0.7.0-aarch64-apple-darwin/latexml_oxide /usr/local/bin/
macOS users also need the runtime libraries and a TeX distribution:
brew install libxml2 libxslt
# plus TeX Live — either Homebrew's (ships libkpathsea, fastest path):
brew install texlive
# …or MacTeX / BasicTeX, served via the subprocess-kpsewhich fallback.
Apple Silicon (arm64) only. Intel Macs are not yet a published target.
Changelog
[0.7.0] (single-binary release: portability, runtime bindings, edition 2024)
- Self-contained, redistributable binary (#236). Engine dumps, the
RelaxNG schema, and XSLT/CSS/JS are embedded and served from memory; the
maxperfbinary runs with noresources/tree. A tag-driven release
workflow builds the publish-grade artifact and attaches a portable tarball- Debian
.deb(each with a SHA-256 sidecar) as GitHub Release assets.
- Debian
- macOS (Apple Silicon) support (#245). Full test suite green on arm64;
the distributed binary uses the subprocess-kpsewhichbackend (no
libkpathsea ABI dependency, works on MacTeX). The release ships an
aarch64-apple-darwintarball alongside the Linux artifacts. - Runtime (Rhai) script bindings shipped in the release artifact
(#171, #248). A shared winnow template AST backs both the compile-time
native binding front-end and an optional runtime contributed-bindings
front-end embedded via Rhai — customize bindings without recompiling.
Runtime opt-in, so default conversions are unaffected. - Frontmatter refactor: faithful port of upstream LaTeXML PR #2767
(#241), with a--debug NAMECLI and a deep-recursion pre-clear guard
that surpasses the Perl original on pathological inputs. - Persistent server mode
latexml_oxide --server(#243) for
editor/preview integration, plus opt-in source locators (--source-map)
andtoken-locatorsprecision (#237) toward live source↔preview. - Post-processing: faithful MakeIndex port — see/seeonly, styles,
anchors, placement (#244); CLI--css/--javascriptresources copied and
followed (#250); html_feedback regression fixes (#240). - Engine parity at scale: error-free conversion sweeps over the arXiv
"warning" corpus scaled to 1.5M → 2M articles (#238, #242) and a third
500K canvas at ≥99.0% success (#249).ProcessOptionskeysets (#235). - Toolchain & quality: migrated the workspace to Rust edition 2024 and
centralized lint enforcement (#252) — cleanclippy -D warnings,
tree-widestyle_edition = "2024"formatting, a[workspace.lints]
policy, and a CIlintgate (rustfmt + clippy + cargo-deny advisories/
licenses + cargo-machete) plus an auto-installed pre-push hook. Three
unmaintained/vulnerable transitive dependencies (tempdir, ansi_term) were
dropped at the source, so the dependency audit is clean.
What's Changed
- Update indexmap requirement from =2.13.1 to =2.14.0 by @dependabot[bot] in #234
- feat: ProcessOptions keysets => [...] + raise ar5iv pushback/iflimit by @dginev in #235
- single-binary distribution: embed owned assets + release-asset workflow by @dginev in #236
- Update sha2 requirement from 0.10 to 0.11 by @dependabot[bot] in #233
- feat(source-map): opt-in source locators + token-locators precision by @dginev in #237
- [parity] 1,500,000 arXiv articles by @dginev in #238
- feat(whatsout): full --whatsin/--whatsout port + fix(test-mem): per-test thread-local engine leak by @dginev in #239
- [parity] 2,000,000 arXiv articles by @dginev in #242
- Fix/regression reports html feedback by @dginev in #240
- Persistent LSP server: latexml_oxide --server for editor/preview integration by @dginev in #243
- fix(post): faithful MakeIndex port — see/seeonly, ref styles, anchors, placement by @dginev in #244
- Add macOS portability by @dginev in #245
- fix(biblatex): parse keyval .bbl name format; complete \endentry fields by @dginev in #246
- Third 500K arXiv-warning canvas (≥99.0% success rate) by @dginev in #249
- Shared winnow template AST (#171) + feature-complete Rhai binding front-end by @dginev in #248
- Frontmatter refactor: translate upstream LaTeXML PR #2767 by @dginev in #241
- fix(post): copy & follow CLI --css/--javascript resources to the destination by @dginev in #250
- chore: migrate the workspace to Rust edition 2024 by @dginev in #251
- chore: clean clippy, apply edition-2024 formatting, centralize lint enforcement by @dginev in #252
- release: prepare 0.7.0 (runtime-bindings, .deb deps, pinned nightly, docs) by @dginev in #254
- chore(deps): update winnow requirement from 0.7 to 1.0 by @dependabot[bot] in #253
- ci: cache engine dumps (skip ~8-min make-formats when engine unchanged) by @dginev in #255
- release: auto-append the merged-PR list to release notes by @dginev in #256
- refactor: drop kpathsea from the latexml_codegen proc-macro build by @dginev in #258
- release: statically link libkpathsea (in-process, self-contained) on both legs by @dginev in #257
- fix(release): build cargo-deb from source (glibc 2.35 compat) by @dginev in #259
Full Changelog: 0.6.1...0.7.0