{"id":30671501,"url":"https://github.com/cenotelie/hime","last_synced_at":"2025-09-01T03:16:39.601Z","repository":{"id":41500075,"uuid":"203744970","full_name":"cenotelie/hime","owner":"cenotelie","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-31T14:14:02.000Z","size":18504,"stargazers_count":32,"open_issues_count":26,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-01T02:27:24.785Z","etag":null,"topics":["glr","nuget","parser-generator","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/cenotelie.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-22T08:04:35.000Z","updated_at":"2025-06-01T09:33:05.000Z","dependencies_parsed_at":"2022-09-26T22:10:21.867Z","dependency_job_id":"d2b9a8e4-d232-433a-b590-ed6b9f8d5a27","html_url":"https://github.com/cenotelie/hime","commit_stats":{"total_commits":1771,"total_committers":2,"mean_commits":885.5,"dds":"0.14793901750423488","last_synced_commit":"4dabb32b8a340986f12d92df206ae802efadc78f"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/cenotelie/hime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenotelie%2Fhime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenotelie%2Fhime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenotelie%2Fhime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenotelie%2Fhime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cenotelie","download_url":"https://codeload.github.com/cenotelie/hime/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenotelie%2Fhime/sbom","scorecard":{"id":270854,"data":{"date":"2025-08-11","repo":{"name":"github.com/cenotelie/hime","commit":"fc3b56e09998faf532d8cda6847a89a5937f632c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":2,"reason":"Found 6/28 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: .releng/buildenv/Dockerfile:1: pin your Docker image by updating buildpack-deps:24.04-curl to buildpack-deps:24.04-curl@sha256:8693aea4cdad1dd3a30cc105434f7ba25d1711c976a18f80626c606f892794d9","Warn: downloadThenRun not pinned by hash: .releng/buildenv/Dockerfile:40-44","Warn: nugetCommand not pinned by hash: build-publish.sh:17: pin your dependecies by either enabling central package management (https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management) or using a lockfile (https://learn.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies)","Warn: nugetCommand not pinned by hash: build.sh:16: pin your dependecies by either enabling central package management (https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management) or using a lockfile (https://learn.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies)","Warn: nugetCommand not pinned by hash: build.sh:19: pin your dependecies by either enabling central package management (https://learn.microsoft.com/nuget/consume-packages/Central-Package-Management) or using a lockfile (https://learn.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies)","Info:   0 out of   1 downloadThenRun dependencies pinned","Info:   0 out of   3 nugetCommand dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T13:19:07.103Z","repository_id":41500075,"created_at":"2025-08-17T13:19:07.103Z","updated_at":"2025-08-17T13:19:07.103Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273068857,"owners_count":25039911,"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-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["glr","nuget","parser-generator","rust"],"created_at":"2025-09-01T03:16:38.239Z","updated_at":"2025-09-01T03:16:39.591Z","avatar_url":"https://github.com/cenotelie.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README #\r\n\r\n[![Build Status](https://dev.azure.com/cenotelie/cenotelie/_apis/build/status%2Fcenotelie.hime?branchName=master)](https://dev.azure.com/cenotelie/cenotelie/_build/latest?definitionId=6\u0026branchName=master)\r\n[![Crates.io](https://img.shields.io/crates/v/hime_redist.svg)](https://crates.io/crates/hime_redist)\r\n\r\nHime is a parser generator that targets .Net, Java and Rust.\r\nHime relies on the [LR](https://en.wikipedia.org/wiki/LR_parser)\r\nfamily of parsing techniques, including the state of the art\r\n[RNGLR algorithm]((http://portal.acm.org/citation.cfm?id=1146809.1146810\u0026coll=DL\u0026dl=GUIDE\u0026CFID=9339017\u0026CFTOKEN=49072692)) for generalized LR parsing used for\r\nambiguous grammars. Hime provides a powerful, expressive,\r\nand feature-rich grammar language with support for\r\n[template syntactic rules](http://cenotelie.fr/projects/hime/referenceLangTemplates),\r\n[context-sensitive lexing](http://cenotelie.fr/projects/hime/referenceLangContextSensitive)\r\n(useful for contextal keywords),\r\n[tree actions](http://cenotelie.fr//projects/hime/referenceLangTreeActions)\r\n(useful for clean syntax trees), and more!\r\nHime strongly emphasizes the separation of data and code. Hime forbids the inclusion of inline code in its grammar definitions in order to have very readable grammars that can be easily understood, debugged, improved. It is still possible to have custom code invoked during parsing with semantic actions.\r\n\r\nThe generated parsers require a runtime, available for the following platforms:\r\n\r\n* [.Net framework](https://www.nuget.org/packages/Hime.Redist/)\r\n* [JVM](https://central.sonatype.com/artifact/fr.cenotelie.hime/hime-redist)\r\n* [Rust](https://crates.io/crates/hime_redist)\r\n\r\n## Parser generator\r\n\r\nThe parser generator (himecc) has native builds for Windows, MacOS and Linux.\r\n* [Windows](https://cenotelie.s3.fr-par.scw.cloud/hime/stable/windows/himecc.exe)\r\n* [Linux](https://cenotelie.s3.fr-par.scw.cloud/hime/stable/linux-musl/himecc)\r\n* [MacOS](https://cenotelie.s3.fr-par.scw.cloud/hime/stable/macos/himecc)\r\n\r\nAlternatively, himecc can be built and installed from sources with cargo :\r\n\r\n```bash\r\ncargo install hime_compiler\r\n```\r\n\r\nSee all download options in [the download page of the doc](https://cenotelie.fr/projects/hime/download).\r\n\r\n## How do I use this software? ##\r\n\r\n* [Complete user documentation](https://cenotelie.fr/projects/hime)\r\n* [Grammar library](https://github.com/cenotelie/hime-grams)\r\n\r\n\r\n## License\r\n\r\nAll software is available under the terms of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).\r\n\r\n## Repository structure ##\r\n\r\n* Runtime implementations\r\n\t* `runtime-net`: .Net implementation of the runtime.\r\n\t* `runtime-java`: Java implementation of the runtime.\r\n\t* `runtime-rust`: Rust implementation of the runtime.\r\n* SDK\r\n\t* `sdk-rust`: Rust implementation of the SDK for parser generation.\r\n\t* `sdk-debugger`: CLI tool to inspect and debug generated binary automata.\r\n\t* `sdk-unicode-gen`: CLI tool to generate the code to be put in `sdk-rust` related to unicode blocks and categories.\r\n* Final tools\r\n\t* `himecc`: Rust implementation of the parser generator CLI.\r\n\t* `parseit`: Rust implementation of the tool for parsing bits of texts using a previously generated parser assembly.\r\n\t* `langserv`: Language server for the Hime grammar language.\r\n* Tests\r\n\t* `tests-driver`: Sources of the tests driver for all runtime tests.\r\n\t* `tests-executor-net`: Sources of the test executor for the .Net runtime implementation.\r\n\t* `tests-executor-java`: Sources of the test executor for the Java runtime implementation.\r\n\t* `tests-executor-rust`: Sources of the test executor for the Rust runtime implementation.\r\n* Others\r\n\t* `.assets`: Contains some extra products, e.g. standard grammars.\r\n\t* `.releng`: Contains the release engineering artifacts.\r\n\r\n\r\n## How to build ##\r\n\r\nTo build the code and execute all tests, run\r\n\r\n```\r\n$ sh build.sh\r\n```\r\n\r\nNote that the development environment is fully dockerized and executing this command requires docker and will pull the required docker image if not locally available.\r\n\r\n\r\n## How can I contribute? ##\r\n\r\nThe simplest way to contribute is to:\r\n\r\n* Fork this repository on [GitHub](https://github.com/cenotelie/hime).\r\n* Fix [some issue](https://github.com/cenotelie/hime/issues?status=new\u0026status=open) or implement a new feature.\r\n* Create a merge request on GitHub.\r\n\r\nPatches can also be submitted by email, or through the [issue management system](https://github.com/cenotelie/hime/issues).\r\n\r\nThe [isse tracker](https://github.com/cenotelie/hime/issues) contains tickets that are accessible to newcomers. Look for tickets with `[beginner]` in the title. These tickets are good ways to become more familiar with the project and the codebase.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenotelie%2Fhime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcenotelie%2Fhime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenotelie%2Fhime/lists"}