Skip to content

Commit 54fb84b

Browse files
committed
Update README.md
1 parent a21a00d commit 54fb84b

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

README.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,38 @@ product.Stock < 15
2626

2727
## Features
2828

29-
* Seamless integration with Go (no need to redefine types)
30-
* Static typing ([example](https://godoc.org/github.com/antonmedv/expr#example-Env)).
29+
**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.
3142
```go
3243
out, err := expr.Compile(`name + age`)
3344
// err: invalid operation + (mismatched types string and int)
3445
// | name + age
3546
// | .....^
3647
```
37-
* User-friendly error messages.
38-
* Reasonable set of basic operators.
39-
* Builtins `all`, `none`, `any`, `one`, `filter`, `map`.
48+
49+
### User-Friendly
50+
* 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.
4055
```coffeescript
4156
all(Tweets, {.Size <= 280})
4257
```
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.
4461

4562
## Install
4663

0 commit comments

Comments
 (0)