mrkeyoor.com_
Tue 29 Sept 21:01 UTC
Dev Toolsevaluationupdated 25 Aug 2026

rhwp review

rhwp is a Korean-first Rust and WebAssembly viewer, editor, converter, CLI, and MCP server for HWP, HWPX, and a limited set of HML documents. A full English README exists, but the project says its roadmap and working documentation use Korean as the source of truth.

+19stars / 7d
Verdict

Our rhwp build completed in 168 seconds and its test run recorded 3,880 passes with zero failures before the 900-second cap, which is strong evidence for a v0.8.4 project but not a completed suite. It is the most ambitious open-source choice here for web editing, conversion, and agent access to Korean HWP files. Pilot it against your own documents before replacing a reference viewer, especially when tables, pagination, fonts, or exact print output carry legal or operational weight.

We ran it

Lab card: what happened when we ran rhwpScreenshot of rhwp (github.com/edwardkim/rhwp)
Install✓ · 41s200 packages
Build✓ · 168s
Tests✗ timed out · 900s3880 passed · 0 failed of 3880 (cargo test)
Repo14917 files~793,046 lines of source · 1614.7 MB · 12 CI workflows · Dockerfile · tests dir

Answers from our run

Does rhwp build from source?

Dependencies installed in 41 seconds (200 packages), and the build succeeded in 168 seconds. We cloned commit 496333b into a clean Debian container with 3 CPUs and no project-specific setup.

Do rhwp's tests pass?

Yes: 3880 of 3880 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use rhwp?

Teams that require pixel-identical output for every HWP document today: open renderer issues describe pagination gaps, clipped table text, and line placement outside the page.

What are the alternatives to rhwp?

hwp.js, pyhwp, LibreOffice. Our rhwp build completed in 168 seconds and its test run recorded 3,880 passes with zero failures before the 900-second cap, which is strong evidence for a v0.

Setup3/5Build passed; full source tree and tests demand time and disk
Docs4/5Full English README, while authoritative project records are Korean
Community5/5Pushed Aug 25 with rapid issue-to-fix activity
Maturity3/5Broad v0.8 feature set with active layout corrections

Who it’s for

Korean organizations that need HWP or HWPX viewing and editing outside Hancom's desktop software.
Web developers who want an embeddable editor or a lower-level WASM parser and renderer.
Automation teams that need CLI conversion, field filling, document inspection, or PDF and image output.
Claude Code and other MCP users that need agents to inspect, search, fill, or convert Korean documents locally.

Who it’s NOT for

Teams that require pixel-identical output for every HWP document today: open renderer issues describe pagination gaps, clipped table text, and line placement outside the page.
Contributors who cannot work from Korean source material: an English README exists, but the roadmap and project process records identify Korean as authoritative.
Users expecting an official Hancom product or support contract: rhwp explicitly says it is independent and not affiliated with Hancom.
Applications depending on official Python or Node bindings: v0.8.4 withdrew those release channels and removed their dedicated code and current documentation.
Small CI machines that require a complete suite inside 15 minutes: our tests reached 3,880 passes with no failures, then hit the 900-second cap before completion.

Setup reality

Our sandbox installed 200 Rust packages in 41 seconds and built successfully in 168 seconds. The checkout was unusually large at 1,614.7 MB, with 14,917 files and roughly 793,046 lines of source, much of it spanning the renderer, editor, extensions, tests, and process records.

End users can choose release binaries, browser extensions, @rhwp/core, or @rhwp/editor. Source work requires Rust 1.93.1; the README adds Docker for WebAssembly and Node 18 or newer for the web editor. Accurate Korean layout also depends on having suitable document fonts available.

Tests timed out after 900 seconds, but 3,880 tests had passed and none had failed. The tail showed a 13-test binary finishing cleanly, then gate_contract starting 4 tests. This is an incomplete suite rather than a failed assertion.

HWP viewing, editing, and automation share one engine

rhwp parses HWP 5.0 binary files, HWPX XML documents, and a limited corpus-verified subset of HML. Its Rust document model feeds layout, pagination, SVG output, Canvas rendering, PDF and PNG export, and editing operations. The same engine reaches users through a web studio, browser extensions, a VS Code extension, npm packages, a native CLI, and WebAssembly.

The project is Korean-first. Its main README and issue discussions are Korean, while a substantial English README mirrors features and setup. The English page states that the roadmap's Korean version remains the source of truth. That language choice fits a project centered on South Korea's HWP format, but it affects contributors who need to follow 14,917 files and a fast-moving typesetting effort through translated documentation.

The editor goes far beyond text extraction

The renderer handles paragraphs, tables, equations, images, charts, headers, footers, master pages, footnotes, multiple columns, and several object-placement modes. Editing includes text changes, formatting dialogs, table operations, undo and redo, plus an hwpctl-compatible action layer. The project can save HWP and HWPX and uses preflight checks to stop unsupported HML content from being saved with silent loss.

That breadth should not be confused with perfect document fidelity. Issue #6095 reports a nested table creating 303 pixels of empty space and pushing content onto a second page. Issue #6035 compares table-row pagination that leaves 31 points blank and produces 12 pages where the reference output has 11. These reports are specific, actively investigated renderer gaps, exactly the kind a buyer should test with its own forms.

Browser packages and release binaries avoid the full build

Web applications can embed @rhwp/editor or call the lower-level @rhwp/core WASM parser and renderer. The README also points users to Chrome, Edge, Firefox, and VS Code packages. Native release archives include checksums, and rhwp capabilities prints the CLI's machine-readable command contract before a user attempts document work.

Release v0.8.4 narrowed distribution rather than adding more official channels. It kept GitHub Pages, native CLI archives, two npm packages, editor marketplaces, and browser extensions. It withdrew PyPI, @rhwp/node, a container image, operating-system packages, install scripts, and an installation Action after v0.8.3 had exposed them unintentionally. Teams depending on those removed routes should not treat their earlier appearance as ongoing support.

MCP gives agents document operations without uploading files

The native binary can run an MCP server that exposes HWP information, search, field filling, and document conversion. Large files can be opened into a session for repeated queries and edits without reparsing each call. That is a useful boundary for local agents handling Korean forms, because the host can pass a file path to the local process instead of sending the document to another hosted conversion service.

Claude Code is named as one supported host, and the project provides integration and troubleshooting guides. The capability is still only as accurate as the parser and layout engine beneath it. An agent that fills named fields may be safe after output verification; an agent that converts a layout-sensitive 12-page form deserves visual comparison. The MCP tag describes a real built-in server, not a proposed integration.

What happened when we ran it

Our sandbox installed 200 Rust packages in 41 seconds at commit 496333b, then finished the build in 168 seconds. The checkout occupied 1,614.7 MB and contained roughly 793,046 source lines across 14,917 files. A Dockerfile, Compose file, tests directory, and 12 CI workflows were all present. Source setup succeeded in the unprivileged 3-CPU, 12 GB container.

The test command ran until the 900-second limit. By then, Cargo had reported 3,880 passing tests and zero failures. The supplied tail shows fields_missing_file_exit_runtime_silent_stdout, Unicode-confusable checks, and other field tests passing, followed by a clean 13-test result. It then started tests/gate_contract.rs and announced 4 tests, but the log ends before their result.

Calling that a test failure would misstate the evidence. No assertion failed in our run; the overall suite simply did not finish inside 15 minutes. The 1,614.7 MB checkout and long-running suite make contributor setup heavier than the native binary path. Maintainers running a change locally should select relevant targets first and reserve a longer CI job for the complete set.

Korean document fidelity remains the buying test

rhwp was pushed on August 25, 2026, and GitHub listed 195 open issues and pull requests. The latest activity pairs narrow renderer reports with proposed fixes, including Korean quote width, page ownership, table splitting, and Studio zoom state. That issue-to-pull-request rhythm is healthy, though it also shows how many edge cases a reverse-engineered office format contains.

Use rhwp when open code, local processing, web delivery, or agent access matters enough to test the actual corpus. Keep a set of representative government forms, school documents, tables, equations, and print outputs as acceptance fixtures. A general office suite is safer when users need many formats. A smaller parser is easier when text extraction alone solves the job. rhwp earns the larger commitment when editing and layout are requirements.

Alternatives

ProjectWhat it isPick it when
hwp.jsA web-oriented JavaScript parser and viewer for HWP files.pick this instead when browser viewing and a JavaScript codebase matter more than editing, MCP, or native conversion.
pyhwpA Python toolkit for parsing and converting HWP version 5 documents.pick this instead when a Python pipeline needs HWP 5 extraction and does not need rhwp's editor or renderer stack.
LibreOfficeA full desktop office suite with broad document-format support.pick this instead when users need a general office application and HWP is one format among many.

What people are saying

  1. [github-trending] edwardkim/rhwp

Sources

  1. rhwp Korean README
  2. rhwp English README
  3. rhwp repository
  4. rhwp v0.8.4 release
  5. Nested-table pagination report #6095
  6. Table row pagination report #6035

More dev tools reviews

Kaku · kordoc · hey · wechat-miniapp-radar · omarchy-workspace-layout · fermats-last-theorem · the whole board →