rust-hwp-intl
v0.2.1
Published
HWP/HWPX document engine and browser editor maintained by echovisionlab
Maintainers
Readme
rust-hwp-intl
DSUB's HWP/HWPX document viewer, editor, and self-hosted runtime. Use the DSUB HWP editor in your browser.
It opens, edits, and saves HWP 5.0/HWPX documents, with paragraph, table, equation, image,
and chart rendering and pagination. Includes text, formatting, and table editing, undo,
HWPX to HWP conversion, and SVG/PDF export through the CLI. PNG export requires native-skia.
HML (HWPML 2.9/2.91) support is limited to verified structures; unsupported pictures or embedded
resources trigger warnings and block lossy saves.
npm installation and self-hosting
One rust-hwp-intl package includes the document engine, ./editor embedding API, and standalone Studio archive.
npm install [email protected]
mkdir -p public/vendors/rust-hwp-intl/0.1.0
tar -xzf node_modules/rust-hwp-intl/studio.tar.gz -C public/vendors/rust-hwp-intl/0.1.0Check the asset hashes and version in the archive's runtime-manifest.json before deployment.
With public/ as your static root, Studio is served at /vendors/rust-hwp-intl/0.1.0/.
import init, { HwpDocument } from 'rust-hwp-intl';
import { createEditor } from 'rust-hwp-intl/editor';
const editor = await createEditor('#editor', { studioUrl: '/vendors/rust-hwp-intl/0.1.0/' });Provide a container with id="editor" on the page. For direct engine use, pass the WASM location to init.
The WASM file is available as rust-hwp-intl/rhwp_bg.wasm.
Source build and local development
Requires Rust 1.93.1, wasm-pack, Node.js 24, npm, Git, and tar.
git clone https://github.com/echovisionlab/rust-hwp-intl.git
cd rust-hwp-intl
wasm-pack build --target web --release
node scripts/build-dsub-runtime.mjs
bash scripts/prepare-npm.shThe build compiles WASM from the current source into pkg/, installs Studio dependencies, checks TypeScript, and creates the bundle.
It produces output/dsub-runtime/rust-hwp-intl-studio-0.1.0.tar.gz and the npm distribution in pkg/.
It bundles WASM, fonts, licenses, and an asset manifest, excluding external web fonts, hwpctrl, demo samples, and PWA.
Run the development server from the repository root and open localhost:7700.
RHWP_DISABLE_EXTERNAL_WEBFONTS=1 npm --prefix rhwp-studio run dev:no-hwpctrl -- --host 127.0.0.1 --port 7700 --strictPortThe root Cargo.toml defines the version. Release Please creates Rust release PRs;
the exact vX.Y.Z tag publishes the matching npm version through OIDC. If Actions is unavailable, publish the same release manually.
Credits and license
Built on Edward Kim's rhwp document engine and Studio.
Internal crate/CLI names and source paths retain rhwp. MIT License, Copyright (c) 2025-2026 Edward Kim.
See THIRD_PARTY_LICENSES.md and the font inventory; include their notices when redistributing.
An independent project based on Hancom's published HWP specification. "Hangul", "Hancom", "HWP", and "HWPX" are Hancom trademarks; the project has no affiliation, sponsorship, or endorsement from Hancom.
