DeukPack Core · Engine
One-liner: Centered on the DeukPack native IDL (.deuk), provides parsing, AST, code generation, schema, and meta in a single engine. Outputs C#, C++, TS, JS; Protobuf, OpenAPI, CSV, and legacy .thrift are inputs to the same pipeline.
!!! tip "Recent notices (this product line)"
2026-03-28 — 1.2.6 — schema strings, C# codegen, C++ CI, verify
- **Schema**: DeukPack **`type`** strings; **JSON wire** keys (`i32`, `tf`, …) unchanged.
- **C#**: **`DpSchemaType`** **`Int16`/`Int32`/`Int64`**, codegen property defaults.
- **CI**: C++ **`ctest`** on Ubuntu and Windows.
- **Tooling**: **`npm run verify`**.
**2026-03-27** — 1.2.5 — npm/GitHub index alignment, C# CS8767
- **Package `index`**: same public API on **npm** and **GitHub** (`serialize`/`deserialize`, interop, `packStructWire`, etc.). Excel-only protocol not in the open-source tree.
- **C#**: **`WriteString`/`WriteBinary`** nullable on protocol impls; **`DpMetaInfosWrapper.TryGetValue`** **`[MaybeNullWhen(false)]`** (CS8767).
**2026-03-26** — 1.2.4 — GitHub README links, deps, Node 18, audit
- **README (GitHub)**: documentation links point to **deukpack.app**.
- **Dependencies**: Jest 30, protobufjs 8, node-addon-api 8, yaml/nan, rimraf 6, cmake-js 8, node-gyp 12, etc.
- **Security / runtime**: **`npm audit fix`** (minimatch); **`engines`** and setup minimum **Node 18**.
**2026-03-25** — 1.2.3 — init flow, bootstrap, VSIX order, Antigravity
- **init**: fewer prompts; bootstrap always; `--skip-workspace` removed.
- **VSIX**: after bootstrap; auto-install `code`→`cursor`→`antigravity`.
- **Docs**: `npx` vs `npm deukpack`.
**2026-03-24** — 1.2.2 — pipeline all-deuk scan, output paths, ts/js dirs
- **Pipeline**: `defineScope: all` (default), `exclude`, short-lived bundle entry.
- **Output**: omit `outputDir` → same as `defineRoot`; default subdirs `csharp`/`cpp`/`ts`/`js`; rename via `outputLangSubdirs`.
- **init / docs / examples**: defaults and paths aligned.
**2026-03-24** — 1.2.1 — README, pipeline warning, VSIX auto on version bump
- **README**: local install code blocks; drop global `-g` from guide; **DeukPack Tale** label for kits.
- **CLI**: warn on one-shot runs when default pipeline JSON is missing; nudge **`npx deukpack init`**.
- **init/bootstrap/VSIX**: auto VSIX attempt on npm version mismatch; Unity-aware prompts; non-interactive ensure.
**2026-03-23** — 1.2.0 — bundled VSIX, npm wire, Unity integration docs
- **VS Code extension**: npm tarball ships **`bundled/deuk-idl.vsix`**; **postinstall** and **bootstrap** wired (`bundled/README.md`).
- **npm**: `serialize` / `deserialize` use `WireExtras` / `WireDeserializeExtras` (legacy overload removed).
- **TypeScript wire**: `BinaryReader`, `wireTags`, `SerializationWarnings`; Deuk native and interop protocols stay paired.
- **Docs**: Unity UPM integration documented on **deukpack.app**.
- **Codegen & CI**: C++/TS/JS templates and schema labeling; C# protocol CI stabilized.
**2026-03-20** — 1.1.0 — C++ uint types, legacy message block, CLI
- **C++ (`--cpp`)**: `uint8` … → `<cstdint>` aliases.
- **IDL**: legacy Thrift-style `message { … }` blocks.
- **CLI**: delegates to `scripts/build_deukpack.js`.
Core differentiators
| Area |
What DeukPack offers |
| Inheritance |
Struct extends — multi-level inheritance, parent fields merged at codegen; wire-compatible, no duplicate field IDs. |
| Data types |
Primitives: bool, byte, int8–int64, float, double, string, binary; containers: list, set, map; tablelink (DB/table row reference); datetime, decimal. Same type set across C#, C++, TS, JS. |
| DB model |
SQLite DDL from AST; EF-ready attributes and codegen; table/container in IDL for meta and row types. |
Use the core now
The DeukPack core is free (Apache-2.0) and ready to install. CLI, codegen, and C# runtime are available from a single npm package.
Install & run (one-liner)
| Channel |
Link |
Use case |
| npm |
deukpack |
npm install deukpack / npx deukpack — distribution only |
| GitHub |
joygram/DeukPack |
Source, issues, contributions, releases. Clone & local build |
# Add to project
npm install deukpack
# Run CLI codegen (without installing)
npx deukpack ./idl/root.deuk ./gen --csharp --cpp --js -I ./idl
More on this site
| Document |
Content |
| Install (Windows · Linux) |
Node install, distribution (npm) / .tgz install |
| Quick start |
Step-by-step: one IDL → C#, C++, TS generation |
| IDL guide |
.deuk / .thrift syntax, namespaces |
| C# guide |
C# generated code, protocol, references |
| C++ guide |
C++ build, include, execution |
| Pipeline guide |
Multiple jobs, config JSON |
| Kits lineup |
Unity, C++, Console, EF, TS, etc. |
| Documentation |
Korean / English document locations |
GitHub repository
Core library summary
- Official OSS: github.com/joygram/DeukPack — source, README, issues, contributions, releases. See the repo README and RELEASING for clone, local build, and contribution.
- C# / Unity: Reference the npm package's
dist/csharp runtime or see the kits lineup samples.
What you get
- Memory: No need to load everything into memory — SQLite, streaming, and (optional) zero-copy enable large-scale, low-memory configurations. Buffer reuse and minimal reflection keep runtime allocations small.
- Performance: Parsing and code generation are orders of magnitude faster even for large IDL sets. Runtime serialization/deserialization targets ~10× faster throughput.
- Convenience: One definition, one build aligns code, meta, DB, and validation. Absorb existing .proto, OpenAPI, CSV, .thrift into DeukPack.
- Extensibility: Multiple files and namespaces, simultaneous C# / C++ / TS / JS generation. Extend schema, code, DB, and Excel from a single source.
Alongside existing definitions & specs
- .deuk first; Protobuf and .thrift can be mixed in the same AST.
- OpenAPI 3.x, JSON Schema, and CSV import bring existing specs into the AST, handling code, meta, and tables in one toolchain.
- Import .proto and .thrift files as-is for gradual integration.
Features
| Category |
Content |
| IDL input |
Deuk (.deuk), Protobuf (.proto), .thrift parsing. Mixable in one build. |
| Schema import |
OpenAPI 3.x → AST, JSON Schema → AST, CSV → AST (schema inference). |
| Code generation |
C#, C++, TypeScript, JavaScript. GetSchema(), ProtocolRegistry, MetaTableRegistry, etc. |
| Database |
SQLite: AST → DDL + C# access code. EF-ready codegen. |
| Inheritance |
Struct extends — multi-level, wire-compatible; parent fields merged into child at codegen. |
| Type system |
float, double, int8–int64, bool, string, binary, list/set/map, tablelink, datetime, decimal — consistent across languages. |
One definition yields multi-language, multi-output simultaneous generation with fast builds, and existing definitions can be reused as-is.