You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Expr** is a safe, fast, and intuitive expression evaluator optimized for the Go language.
30
+
Here are its standout features:
31
+
32
+
### Safety and Isolation
33
+
***Memory-Safe**: Expr is designed with a focus on safety, ensuring that programs do not access unrelated memory or introduce memory vulnerabilities.
34
+
***Side-Effect-Free**: Expressions evaluated in Expr only compute outputs from their inputs, ensuring no side-effects that can change state or produce unintended results.
35
+
***Always Terminating**: Expr is designed to prevent infinite loops, ensuring that every program will conclude in a reasonable amount of time.
36
+
37
+
### Go Integration
38
+
***Seamless with Go**: Integrate Expr into your Go projects without the need to redefine types.
39
+
40
+
### Static Typing
41
+
* Ensures type correctness and prevents runtime type errors.
31
42
```go
32
43
out, err:= expr.Compile(`name + age`)
33
44
// err: invalid operation + (mismatched types string and int)
* Provides user-friendly error messages to assist with debugging and development.
51
+
52
+
### Flexibility and Utility
53
+
***Rich Operators**: Offers a reasonable set of basic operators for a variety of applications.
54
+
***Built-in Functions**: Functions like `all`, `none`, `any`, `one`, `filter`, and `map` are provided out-of-the-box.
40
55
```coffeescript
41
56
all(Tweets, {.Size<=280})
42
57
```
43
-
* Fast ([benchmarks](https://github.com/antonmedv/golang-expression-evaluation-comparison#readme)): uses bytecode virtual machine and optimizing compiler.
58
+
59
+
### Performance
60
+
***Optimized for Speed**: Expr stands out in its performance, utilizing an optimizing compiler and a bytecode virtual machine. Check out these [benchmarks](https://github.com/antonmedv/golang-expression-evaluation-comparison#readme) for more details.
0 commit comments