docs(dwg): build identity README next to the parser wasm

Repos copy src/viewer2d/acadrust-dwg/ around, and package.json still
says 0.1.0 for both the old 0.4.1 build and this one, so a copy could not
tell which parser it carries. The README travels with the folder and
records the acadrust version (0.6.5, unmodified), wrapper branch/commit,
the wasm SHA-256, a grep marker that only a 0.6.5 build contains, and
what changes when replacing an old copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
minsungandClaude Opus 5.5 committed 2026-10-20 10:07:13 +09:00
1 parent daa1ea06e7
commit 473addbe44
1 file changed
+40
+40
View File
@@ -0,0 +1,40 @@
# acadrust-dwg — DWG 파서 wasm (빌드 정보)
이 폴더를 다른 레포로 복사해 쓴다면 **이 README 도 같이 복사**한다. 사본이 최신인지 판별할 근거가 여기 있다.
| 항목 | 값 |
|---|---|
| acadrust | **0.6.5** — crates.io 판을 **무수정**으로 사용 (upstream commit `289a616da6c68518218594aa80802cbe7fa71309`, crate SHA-256 `5eaa72520f70eb6f7f09b06f44e1ed0d8fad5fa743364f2c3715c30df962ec7c`) |
| 래퍼 (dwg-wasm, MIT) | `hmwebviewer` 의 `rust/dwg-wasm`, 브랜치 `chore/acadrust-0.6.5`, 커밋 `7c6786a` |
| `acadrust_dwg_bg.wasm` SHA-256 | `2d58b20f172cad3c6a38330c7173d9292107bd2fec8e4085f68507be961761fd` |
| 빌드 | 2026-10-19 · wasm-pack 0.15 · rustc 1.92 · `opt-level = "s"`, LTO |
| 정본 위치 | `gitea.hmac.kr/kimminsung/dwg-dxf-viewer-sample` → `src/viewer2d/acadrust-dwg/` (master) |
## 내 사본이 최신인지 확인
```bash
sha256sum acadrust_dwg_bg.wasm # 2d58b20f172cad3c… 이면 이 빌드
grep -c -a 'acadrust-0.6.5' acadrust_dwg_bg.wasm # 1 이상 = 0.6.5 빌드, 0 = 옛 0.4.x 빌드
```
`package.json` 의 `version`(0.1.0)은 옛 빌드와 같아서 판별에 쓸 수 없다.
`grep` 표식은 wasm 안에 남은 crates.io 경로(`…\acadrust-0.6.5\src\…`)라서, 0.6.5 crate 로 빌드했을 때만 생긴다.
## 옛 빌드(acadrust 0.4.1 + 로컬 패치)에서 바꿀 때 알아 둘 것
- **API 는 같다.** `init` / `initSync`, `parse_dwg_json(bytes)`, `parse_dwg(bytes)`, parseResult 구조 모두 그대로다. 파일 4개(`acadrust_dwg.js`, `acadrust_dwg.d.ts`, `acadrust_dwg_bg.wasm`, `acadrust_dwg_bg.wasm.d.ts`)만 바꾸면 된다.
- **크기**: 864 KB → 2.9 MB (brotli 294 → 815 KB). 대형 도면 로드는 약 2~9 % 느리다.
- **더 정확해진 값** (0.4.1 이 잘못 읽던 것):
- 레이아웃 전체 뷰포트의 `VIEWPORT.id` = 1
- 3D 폴리선 vertex 순서
- ATTDEF 정렬
- 치수 `pt10`
- 트루컬러의 근사 ACI
- **한글**: 한글(CP949)을 원본 출력에서 바로 디코딩한다. JS 쪽 `fixDwgKoreanText` 는 그대로 둬도 무해하다.
- **새 타입명**: `DIMENSION_ARC`, `DIMENSION_LARGE_RADIAL`. 0.4.1 은 이 치수를 버렸다.
- **손상 레코드**: 도면 전체를 거부하지 않고 건너뛴 뒤 notification 으로 남긴다 (failsafe).
- 상세: 정본 레포 `docs/acadrust-0.6.5-upgrade.md`. 22개 샘플 화면 비교: `docs/acadrust-0.6.5-upgrade-report.html`.
## 라이선스
acadrust 는 MPL-2.0 이고 무수정으로 쓴다. 배포할 때는 MPL 원문과 소스 입수 위치 고지를 동봉한다 (정본 레포의 `THIRD-PARTY-NOTICES.md`, `public/licenses/`). 래퍼는 MIT.