Skip to content

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

Document Content
Distribution vs source npm usage vs clone & build (this site)
README (Korean) Repo entry / summary
Release docs index Distribution / user doc index

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.