{"id":13408358,"url":"https://github.com/camunda/dmn-scala","last_synced_at":"2025-11-18T11:04:21.388Z","repository":{"id":37889903,"uuid":"108846690","full_name":"camunda/dmn-scala","owner":"camunda","description":"DMN engine written in Scala","archived":false,"fork":false,"pushed_at":"2025-07-14T10:10:30.000Z","size":766,"stargazers_count":36,"open_issues_count":26,"forks_count":15,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-07-16T15:02:22.622Z","etag":null,"topics":["camunda-plugin","decision-engine","dmn","zeebe-worker"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/camunda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-10-30T12:19:42.000Z","updated_at":"2025-07-14T10:10:33.000Z","dependencies_parsed_at":"2023-09-22T09:00:31.374Z","dependency_job_id":"6de5e6d9-b401-4a23-ad0f-8fb7caa6e623","html_url":"https://github.com/camunda/dmn-scala","commit_stats":null,"previous_names":["camunda-community-hub/dmn-scala"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/camunda/dmn-scala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda%2Fdmn-scala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda%2Fdmn-scala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda%2Fdmn-scala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda%2Fdmn-scala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camunda","download_url":"https://codeload.github.com/camunda/dmn-scala/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda%2Fdmn-scala/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266738343,"owners_count":23976417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camunda-plugin","decision-engine","dmn","zeebe-worker"],"created_at":"2024-07-30T20:00:52.378Z","updated_at":"2025-11-18T11:04:21.336Z","avatar_url":"https://github.com/camunda.png","language":"Scala","funding_links":[],"categories":["Job Workers"],"sub_categories":[],"readme":"# DMN Scala\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.camunda.bpm.extension.dmn.scala/dmn-engine/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.camunda.bpm.extension.dmn.scala/dmn-engine)\n\nAn engine to execute decisions according to the [DMN specification](http://www.omg.org/spec/DMN/About-DMN/) that is written in Scala. It uses the [FEEL-Scala engine](https://github.com/camunda/feel-scala) to evaluate FEEL expressions.\n\nThe DMN engine started as a slack time project, grown into a community-driven project, and is now officially maintained by [Camunda](https://camunda.org/). :rocket: \n\nIt is integrated into [Camunda 8](https://github.com/camunda/camunda) to evaluate DMN decisions.\n\n**Features:** ✨\n* Support for the latest version of DMN (Compliance Level 3)\n* Pluggable auditing for history or validation\n* Extensible by custom functions and object mappers\n\nThe coverage of the DMN standard is measured by the [DMN TCK](https://dmn-tck.github.io/tck/index.html).\n\n## Usage\n\nPlease have a look at Camunda's [DMN documentation](https://docs.camunda.io/docs/components/modeler/dmn/) and [FEEL documentation](https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/). The documentation describes how to model DMN decisions and write FEEL expressions (e.g. data types, language constructs, builtin-functions, etc.).\n\n## Install\n\nAdd the DMN engine as a dependency to your project.\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.camunda.bpm.extension.dmn.scala\u003c/groupId\u003e\n  \u003cartifactId\u003edmn-engine\u003c/artifactId\u003e\n  \u003cversion\u003e${version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Custom Functions\n\nThe engine comes with a bunch of [built-in functions](https://docs.camunda.io/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-introduction/) which are defined by the DMN specification. \nIt allows you to define your own functions as FEEL expressions (using the keyword `function`) or as context entry element.\n\nHowever, the engine provides also an SPI to add custom functions that are written in Scala / Java. The classes are loaded via Java's service loader mechanism. Please have a look at the [documentation](https://camunda.github.io/feel-scala/docs/reference/developer-guide/function-provider-spi) to see how to implement the SPI.\n\n### Custom Object Mapper\n\nThe engine has a transformer (aka `ValueMapper`) to transform the incoming variables into FEEL types and to transform the decision result back into regular Scala types. \n\nIf you need to transform custom types or change the result types then you can implement a SPI. The implementation is loaded via Java's service loader mechanism. Please have a look at the \n[documentation](https://camunda.github.io/feel-scala/docs/reference/developer-guide/value-mapper-spi) to see how to implement the SPI.\n\n## Contribution\n\nFound a bug? Please report it using [Github Issues](https://github.com/camunda/dmn-scala/issues).\n\nWant to extend, improve or fix a bug? [Pull Requests](https://github.com/camunda/dmn-scala/pulls) are very welcome.\n\nWant to discuss something? Take a look at the [Camunda Forum](https://forum.camunda.io/tag/dmn-engine-feel).\n\n## License\n\n[Apache License, Version 2.0](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamunda%2Fdmn-scala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamunda%2Fdmn-scala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamunda%2Fdmn-scala/lists"}