mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
- Introduce Utf8Marshaller helpers and SafeHandle wrappers so the managed API centralizes UTF-8 conversions and lifetime management for native pointers. - Update Engine, Compiler, CompiledPolicy, SchemaRegistry, and TargetRegistry to rely on the new marshaller/safe handles, tightening disposal and reducing transient allocations during interop calls. - Add allocation guard coverage in Regorus.Tests and report bytes/op in the compiled policy benchmark to surface future regressions. Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
Regorus CSharp
Regorus is
- Rego-Rus(t) - A fast, light-weight Rego interpreter written in Rust.
- Rigorous - A rigorous enforcer of well-defined Rego semantics.
See main Regorus page for more details about the project.
Building
Github Actions
The simplest way to build a Nuget for Regorus' C# bindings is to use Github Actions. The action to do so is named bindings/csharp and is defined in .github/workflows/test-csharp.yml.
There are two ways to trigger a Nuget build.
- Runs are triggered automatically whenever a push or pull request is made to the
mainbranch. - A run can be triggered manually by navigating to the action in the Github UI and clicking
Run workflow. This option allows you to generate a Nuget for any branch, which is useful when testing the integration of in-progress changes to Regorus with other projects. Nuget files that are generated via this flow will have amanualtriggersuffix appended to their version number, making it easy to distinguish them from Nugets generated using themainbranch.
Once the workflow run completes, the generated Nuget can be downloaded by following these steps:
- Open the run.
- Click on
Build Regorus nugeton the left. - Expand the
Upload Regorus nugetstep. - Click the
Artifact download URLlink at the bottom. - Save and extract the downloaded zip file to find the
.nupkgfile.
Local
TODO