SShortSingh.
Back to feed

Dev Team Builds Rust Binary 'dxpdf' to Replace Headless LibreOffice in Doc Pipelines

0
·1 views

A development team replaced their headless LibreOffice-based DOCX-to-PDF pipeline with a custom open-source tool called dxpdf, a single Rust binary that parses OOXML directly and renders output using Skia. The switch was driven by recurring production problems with LibreOffice, including serialized conversions, process hangs, per-worker profile directory management, and inconsistent output across versions. The new binary converts a 3-page document in 170 ms and a 171-page document in 420 ms on an M3 Max, with font resolution — not document size — identified as the primary performance cost. dxpdf currently supports 74 OOXML features fully, 11 partially, and leaves 12 unimplemented, making it a targeted rather than complete replacement for LibreOffice. The project is open source and designed to run entirely on-premise, requiring no cloud API or external office suite dependency.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Orca Orchestrator Ditches Secret Managers, Stores Encrypted Secrets in Git

Orca, a lightweight single-binary orchestrator, has replaced its managed Infisical sidecar with a dependency-free secrets solution using SOPS and the age encryption tool. The previous approach created a bootstrap problem: the secret manager was itself a service requiring deployment, credentials, and uptime, undermining Orca's promise of no hidden dependencies. Secrets are now stored as an encrypted JSON file committed directly to the config repository, with only values encrypted and keys left in plaintext, enabling readable git diffs during code review. Decryption happens in-process via a Rust library at runtime, with no external binaries invoked, and multi-recipient age keys allow local recovery independent of whether the orchestrator is running. The design keeps the git repository as the single source of truth, with the master automatically committing and pushing re-encrypted files after any secret update.

0
ProgrammingDEV Community ·

ML Neuron Basics Explained Through a Pizza Store Analogy

A developer tutorial published on DEV Community uses a pizza store scenario to explain the foundational mechanics of a machine learning neuron. In the analogy, the number of customers represents input, the two-pizzas-per-person rule represents the model's weight, and the gap between pizzas aimed to sell and actually sold represents the error. The core training loop involves calculating an adjustment by multiplying the error by the input, then updating the weight using a learning rate. This mirrors gradient descent, where the weight is iteratively corrected to minimize error. The tutorial is aimed at beginners who have some basic familiarity with neural networks but struggle with the underlying math.

0
ProgrammingDEV Community ·

How pytest module-scoped fixtures silently share mutable state across tests

A technical article on DEV Community highlights a common pytest pitfall where fixtures set to 'scope=module' share the same object across all tests in a module rather than providing each test its own copy. This means if one test mutates a shared dict or object, subsequent tests receive the already-modified version, causing hard-to-trace failures that only appear when tests run in certain orders. The author recommends three fixes: dropping the scope to the default function level, keeping expensive shared setup while handing each test a deep copy, or using an immutable type like MappingProxyType so mutations raise an immediate error. The article also suggests installing the pytest-randomly plugin to shuffle test execution order in CI, which helps surface order-dependent failures early. The core advice is to treat scope widening as a performance optimisation — only justified when the shared object is proven to be read-only.

0
ProgrammingDEV Community ·

Codename One shifts from Maven Central to self-hosted Cloudflare R2 repository

Codename One, an open-source Java/Kotlin framework for cross-platform app development, is migrating its package distribution from Maven Central to a self-operated repository hosted on Cloudflare R2. The move is driven by the project's unusually high usage of Maven Central infrastructure, exceeding Sonatype's guidelines by over 2,600% in storage and nearly 2,000% in file count. A phased rollout begins July 31, 2026, with dual publishing to both platforms, followed by new projects automatically receiving the new repository URL from August 7. Codename One plans to stop publishing new versions to Maven Central entirely by August 28, 2026, provided the dual-publish period runs smoothly. Existing projects will need to manually add the new repository configuration to continue receiving future updates after the cutover.