Anand Krishnamoorthi
577e1aa8db
More OPA conformance; in-progress: ability to trace interpreter ( #63 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-12-16 17:50:59 -08:00
Anand Krishnamoorthi
8a73b4bef9
Updated readme. Added bundle support. ( #61 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-12-06 15:47:50 -08:00
eric-therond
ef36d9bed5
add full api to engine ( #50 )
...
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
2023-11-27 09:08:40 -08:00
Anand Krishnamoorthi
3514594c56
Use Rc<str> instead of string. ( #52 )
...
This reduces std::mem::size_of::<Value>() to 16 bytes.
String values are also efficiently copied like Objects, arrays, sets etc.
When multiple function rules are evaluated, ensure that constant argument values
match before running the rule. If actual parameter does not match the constant parameter,
then the rule is skipped.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-24 17:45:49 -08:00
Anand Krishnamoorthi
72070a7061
Avoid dependency on `source lifetime. ( #43 )
...
This allows holding onto objects, caching results etc easily.
However it does introduce the overhead of ref counting.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-15 09:25:12 -08:00
Anand Krishnamoorthi
0af8b6ea12
Ability to run the OPA testsuite ( #39 )
...
`OPA_TESTS_DIR=path/to/testsuite cargo test opa -- --shot-output` to run opa tests.
Failing test cases are saved in target/opa/folder for investigation.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-09 15:11:33 -08:00
Anand Krishnamoorthi
d69b413c8e
Engine ( #38 )
...
- Avoid lifetime parameter for Source, Span. Use Rc instead.
- Engine for simplified API
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-07 23:15:28 -08:00
Anand Krishnamoorthi
a751cd69e1
Use Ref for storing ast nodes in collections. ( #37 )
...
cmp, eq is done as pointer comparison which makes retrieval super fast.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-05 22:32:00 -08:00
Anand Krishnamoorthi
d3fd0a3a78
all, any deprecated functions ( #35 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-04 13:22:40 -07:00
Anand Krishnamoorthi
c53d002347
Improvements ( #33 )
...
1. Skip recording undefined variables
2. Parse `in` correctly if it is not imported.
3. base64.decode
4. Handle `with` modifier for qualified data and input.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-01 21:57:06 -07:00
Anand Krishnamoorthi
6228eaab4a
Order query expression results ( #32 )
...
Expressions are scheduled based on dependencies and thusthe gathered
expression values may not be in the same order as in source.
Reorder to match the source.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-31 13:26:33 -07:00
Anand Krishnamoorthi
519cce5b33
Scheduling of statements in user queries ( #31 )
...
Nested queries (comprehensions) are handled correctly.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-31 10:52:51 -07:00
Anand Krishnamoorthi
7a3d5e7e02
eval, lex, parse commands ( #30 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-30 21:45:43 -07:00
Anand Krishnamoorthi
63ecc44a48
eval_user_query for OPA style results ( #29 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-30 10:44:02 -07:00
Anand Krishnamoorthi
800e594d52
Arity for builtins ( #28 )
...
Old-style function call
Utility for running opa yaml tests
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-24 10:11:50 -07:00
Anand Krishnamoorthi
2436467fbd
Minimize PR 22 ( #26 )
...
* specific functions added to eval different rego components
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* allow multiple inputs and results
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* prepare_for_eval is necessary to be called
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* test with the suggested code examples and clean scopes
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* try to refactor first steps of evaluations
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* improve coverage and fix clean state internal evaluation
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* add getters and setters and fix clean function
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
* Tests are single input by default. Multi input specified via "many!" marker.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
---------
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
Co-authored-by: eric-therond <eric.therond.fr@gmail.com >
2023-10-09 14:27:31 -07:00
Anand Krishnamoorthi
7789de41b6
Statement Scheduler Implementation
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-04-09 20:28:59 -07:00
Anand Krishnamoorthi
112623c762
tracing::trace builtin
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi
c4ae2d4cc2
Tests for types functions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
c92707433e
Improvements to github workflow ( #4 )
...
- format check
- clippy checks
- build tests separately before running
Also fix clippy warnings
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-10 11:16:09 +05:30
Anand Krishnamoorthi
980a5d4772
Update name to regorus
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-09 20:33:39 -08:00
Ming-Wei Shih
c0972ad2ba
Update license to MIT
...
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com >
2023-02-09 19:40:35 +00:00
Anand Krishnamoorthi
cb0b3a1790
Code from github.com/anakrish/rego-rs
...
Authored by anakrish and mingweishih
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-09 10:56:54 -08:00