# Show GN: @ohah/hwpjs - 러스트로 만든 hwp 뷰어

> Clean Markdown view of GeekNews topic #24876. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24876](https://news.hada.io/topic?id=24876)
- GeekNews Markdown: [https://news.hada.io/topic/24876.md](https://news.hada.io/topic/24876.md)
- Type: show
- Author: [ohah173](https://news.hada.io/@ohah173)
- Published: 2025-12-07T00:44:29+09:00
- Updated: 2025-12-07T00:44:29+09:00
- Original source: [github.com/ohah](https://github.com/ohah/hwpjs)
- Points: 25
- Comments: 8

## Summary

국산 문서 포맷인 **HWP 파일을 Rust로 파싱하고 렌더링**할 수 있는 새로운 오픈소스 뷰어가 등장했습니다. **Web, Node, React Native, CLI**까지 지원하며, 내부 데이터를 **JSON이나 마크다운 형태로 변환**할 수 있어 다양한 워크플로에 통합하기 좋습니다. 기존 hwp.js의 한계를 보완하고 **NAPI-RS와 Craby**를 활용해 멀티플랫폼 빌드를 구현한 점이 인상적입니다. 오래된 포맷을 현대적인 스택으로 다시 다루는 이런 시도는, “잊힌 기술을 새 언어로 되살리는 재미”를 느끼는 개발자라면 특히 흥미로울 듯합니다.

## Topic Body

### 러스트로 작성한 hwp.js 뷰어  
  
동명의 hwp.js와는 다릅니다.   
제작자도 다릅니다.  
  
4년전쯤에 hwpjs를 바닐라로 구현해본적이 있었는데,   
문득 재작성 욕심이 들어서 사용해 러스트로 다시 만들어 보았습니다.  
  
4년전쯤에 2주 걸려 만들고 포기했었는데, 이번에도 딱 2주정도 작업했습니다.  
  
- Web, Node, React Native, CLI 지원  
  - NAPI-RS를 통해 Node, Web 환경을 지원  
  - React-Native는 Craby를 통한 빌드  
- 기존에 있는 hwp 공개 오픈소스를 많이 참고하여 문서상으로 누락되었거나 문제 있는 부분을 고쳤습니다  
- 현재는 간단하게 마크다운 형태로 뽑아낼 수 있음  
- 문서의 모든 데이터를 JSON으로 변환해주는 기능  
- html 지원 예정  
- canvas, pdf는 추후 계획  
  
사용 기술 스택  
bun, rust, napi-rs, craby, maestro  
  
데모 및 더욱 자세한 소개는  
https://ohah.github.io/hwpjs/ 에서 확인하실 수 있습니다.  
  
수요가 많지 않을 것 같지만,   
혹시라도 사용하게 되시고 원하는 부분이 있다면 피드백 부탁 드립니다.

## Comments



### Comment 47342

- Author: devjeonghwan
- Created: 2025-12-07T16:56:35+09:00
- Points: 1

왜 js가 suffix 인가요?

### Comment 47345

- Author: ohah173
- Created: 2025-12-07T17:49:22+09:00
- Points: 1
- Parent comment: 47342
- Depth: 1

저장소 이름이 바꾸기 귀찮았습니다.  
그리고  실제로 사용처는 자바스크립트를 사용하는 환경에서 사용할 수 있어서,   
사용자 입장에서 hwpjs가 더 직관적이라 생각했습니다. 그래서 바꿀 필요를 못 느꼈습니다.

### Comment 47406

- Author: dofuuz
- Created: 2025-12-08T17:17:30+09:00
- Points: 2
- Parent comment: 47345
- Depth: 2

기술적으로 혼동을 주는 이름인 것도 문제지만,  
동명의 프로젝트가 있는데 그 이름을 쓰는 건 좋지 않은 것 같아요...

### Comment 47442

- Author: bootno2316
- Created: 2025-12-09T13:22:55+09:00
- Points: 1
- Parent comment: 47406
- Depth: 3

같은 생각입니다. 사용자 입장에서 직관적인 이름이 이미 선점되서 아까우시겠지만, 겹치는 이름을 쓰는 건 상도의가 아닌 것 같네요. 자주 쓰는 유명한 프로젝트 이름 하나 떠올려보시고 비슷한 기능의 프로젝트를 누가 똑같은 이름으로 만들었다고 생각해 보시면 어떤 반응이 나올까요..

### Comment 47324

- Author: tensun
- Created: 2025-12-07T08:24:17+09:00
- Points: 1

감사합니다

### Comment 47316

- Author: t7vonn
- Created: 2025-12-07T01:34:54+09:00
- Points: 2

> $ bunx @ohah/hwpjs  
> error: could not determine executable to run for package @ohah/hwpjs  
  
패키지 안에 executable이 없어서 cli로 실행이 안됩니다.

### Comment 47320

- Author: ohah173
- Created: 2025-12-07T02:40:05+09:00
- Points: 1
- Parent comment: 47316
- Depth: 1

배포해두었습니다!

### Comment 47317

- Author: ohah173
- Created: 2025-12-07T01:40:18+09:00
- Points: 1
- Parent comment: 47316
- Depth: 1

아직 cli 기능을 구현한 버전이 배포가 안되었습니다.  
오늘 새벽에 배포하려고 해서 따로 쓰지 않았는데 배포해두겠습니다!
