# dmn **Repository Path**: ymjake/dmn ## Basic Information - **Project Name**: dmn - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-09-18 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DMN 引擎 自托管 DMN 1.5 决策引擎(.NET 10 / C#)。读取标准 DMN XML,执行决策表和字面量表达式决策,自带净室 FEEL 引擎。 ## 核心特性 - **7 种决策逻辑全可评估**:决策表、字面量表达式、Context、List、Relation、Invocation(BKM)、FunctionDefinition - **净室 FEEL 引擎**:手写递归下降解析器,22 个内置函数,支持 if/for/some/every、区间、过滤 - **DmnValue 完整类型**:Number / Boolean / String / Date / Time / DateTime / Duration / YearMonthDuration / Range / List / Context / Function / Null / Error - **结构化审计日志**:逐输入 / 逐命中规则的评估轨迹 + listener 钩子 - **分层架构**:`Dmn.Model` / `Dmn.Interchange` / `Dmn.Semantics` / `Dmn.Feel`,FEEL 可替换 ## 最小示例 ```csharp using Dmn.Feel; using Dmn.Interchange; using Dmn.Semantics; var definitions = new DmnXmlReader().Read(File.ReadAllText("decision.dmn")).Definitions; var runtime = new DmnEvaluationRuntime(definitions, new FeelExpressionEvaluator()); runtime.SetInputParameter("score", new DmnValue.Number(85)); DmnValue? result = runtime.ExecuteDecision("Decision_Grade"); ``` ## 文档 | 文档 | 内容 | |---|---| | [docs/reference.md](docs/reference.md) | 用法与 API 参考(执行决策、FEEL 求值、DmnValue、自定义函数、审计日志) | | [docs/architecture.md](docs/architecture.md) | 架构设计与分层说明 | | [docs/development-guide.md](docs/development-guide.md) | 扩展开发手册 | | [docs/roadmap.md](docs/roadmap.md) | 路线图与里程碑状态 | ## 相关项目 - 架构对标 [camunda/feel-scala](https://github.com/camunda/feel-scala) 与 [camunda/dmn-scala](https://github.com/camunda/dmn-scala) - 流程编排互补库 [valence-works/bpmn](https://github.com/valence-works/bpmn) ## 构建与测试 ```powershell cd dmn dotnet build --nologo dotnet test --nologo ```