Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: hyperjumptech/grule-rule-engine
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.10.6
Choose a base ref
...
head repository: hyperjumptech/grule-rule-engine
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jul 15, 2022

  1. Fix struct name typo (#315)

    fgbravo authored Jul 15, 2022
    Copy the full SHA
    fe6b585 View commit details

Commits on Aug 9, 2022

  1. model: Add MatchString function to Json DAL (#321)

    Adds the MatchString Function to String values in JSON DAL to maintain
    parity with the Go DAL
    justenwalker authored Aug 9, 2022
    Copy the full SHA
    ccb8967 View commit details
  2. feat: add authentication suport for git resource bundle (#318)

    Allows basic or tokened auth for git when creating a resource bundle
    aviadhahami authored Aug 9, 2022
    Copy the full SHA
    f6f3acf View commit details
  3. Copy the full SHA
    e4eea1a View commit details

Commits on Aug 15, 2022

  1. Fix typo/grammar in Tutorial_en.md (#323)

    Thanks for the correction
    mrkish authored Aug 15, 2022
    Copy the full SHA
    620083c View commit details

Commits on Aug 20, 2022

  1. Fix update cn docs (#327)

    * Update Function_cn.md
    
    * Update Tutorial_cn.md
    
    sync with en version
    
    * update json fact link url
    
    * update tutorial cn
    fivezh authored Aug 20, 2022
    Copy the full SHA
    af7f088 View commit details

Commits on Sep 28, 2022

  1. Copy the full SHA
    6cbdf38 View commit details

Commits on Nov 18, 2022

  1. Copy the full SHA
    5cd1de4 View commit details

Commits on Nov 19, 2022

  1. Copy the full SHA
    79615dc View commit details
  2. Copy the full SHA
    7463cc6 View commit details
  3. Update README.md

    Removed contributor list from README. Visitor can easily see this list from the right pane Contributor
    newm4n authored Nov 19, 2022
    Copy the full SHA
    a1e5bf2 View commit details
  4. Update README.md

    Removed badge of travis CI and CircleCI as we only use github action for our CI
    newm4n authored Nov 19, 2022
    Copy the full SHA
    fe3da11 View commit details
  5. Update README.md

    Added Github workflow badge.
    newm4n authored Nov 19, 2022
    Copy the full SHA
    f1ad047 View commit details

Commits on Dec 15, 2022

  1. Issue-309|Fixed append for JsonDataAccessLayer (#341)

    Co-authored-by: Rajat Paliwal <Rajat.Paliwal@sophos.com>
    rajat002 and rajatpaliwal86 authored Dec 15, 2022
    Copy the full SHA
    b4475ad View commit details
  2. Feat/editor (#343)

    * Include fix #339
    * Includes some code for the playground yet it was not yet fixed.
    * Increased go version to 1.18
    newm4n authored Dec 15, 2022
    Copy the full SHA
    2134fd5 View commit details

Commits on Jan 26, 2023

  1. Resolves #174, resolves #345 (#349)

    rifqifatih authored Jan 26, 2023
    Copy the full SHA
    5cd4086 View commit details
  2. feat: update to go 1.19 (#348)

    Co-authored-by: Ferdinand Neman <ferdinand.neman@gmail.com>
    kbakdev and newm4n authored Jan 26, 2023
    Copy the full SHA
    5a9fc72 View commit details

Commits on Mar 15, 2023

  1. Bump golang.org/x/crypto from 0.0.0-20191011191535-87dc89f01550 to 0.…

    …1.0 (#362)
    
    Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.0.0-20191011191535-87dc89f01550 to 0.1.0.
    - [Release notes](https://github.com/golang/crypto/releases)
    - [Commits](https://github.com/golang/crypto/commits/v0.1.0)
    
    ---
    updated-dependencies:
    - dependency-name: golang.org/x/crypto
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Mar 15, 2023
    Copy the full SHA
    064b4f6 View commit details
  2. Bump golang.org/x/net from 0.0.0-20210805182204-aaa1db679c0d to 0.7.0 (

    …#365)
    
    Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20210805182204-aaa1db679c0d to 0.7.0.
    - [Release notes](https://github.com/golang/net/releases)
    - [Commits](https://github.com/golang/net/commits/v0.7.0)
    
    ---
    updated-dependencies:
    - dependency-name: golang.org/x/net
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Mar 15, 2023
    Copy the full SHA
    8274ea9 View commit details

Commits on Aug 16, 2023

  1. Catch panics during rule evaluation and return an error (#374)

    * Catch panics during rule evaluation and return an error
    
    * add can for clarity
    zacharyzundel authored Aug 16, 2023
    Copy the full SHA
    d368b53 View commit details
  2. fix: typo in docs (#389)

    * fix typo in GRL_JSON_en.md
    
    * fix typo in Function_en.md
    
    * fix typo in FAQ_en.md
    
    * fix more typos and grammar
    
    * fix typo in grl_json_en
    
    ---------
    
    Co-authored-by: Ferdinand Neman <ferdinand.neman@gmail.com>
    leonardtan13 and newm4n authored Aug 16, 2023
    Copy the full SHA
    8d28435 View commit details
  3. Passes nlreturn linting (#392)

    * Passes nlreturn linting
    
    * Fixed go mod and go sum
    
    * removed linting
    
    * Fixed imports on editor/Main.go and editor/StaticRoute.go
    
    * Increased workflow to use go 1.20
    
    * Fixing a little bit on Github Action
    
    * Fixit to go 1.20 in workflow
    
    ---------
    
    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 16, 2023
    Copy the full SHA
    887d19b View commit details
  4. Chore/linting added golangci-lint configuration and some linting run. (

    …#393)
    
    * Added noctx linting check. Loading URL resource are now should be finished in 30 minutes
    
    * Added varnamelen linting
    
    * Added more linting module
    
    ---------
    
    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 16, 2023
    Copy the full SHA
    50e649d View commit details
  5. Increased golang.org/x/net to v0.7.0 (#394)

    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 16, 2023
    Copy the full SHA
    332a254 View commit details

Commits on Aug 28, 2023

  1. Chore/panic (#398)

    * Removed panic in JSON Resouce handling code. Some method signature impacted
    
    * removed all panic
    
    * Removed panic on json tools related
    
    * Removed panic from Working Memory
    
    * Removed panic from Working Memory part 2
    
    * Removed panic from JsonDom.go
    
    * Worked trying to remove all bad panic
    
    ---------
    
    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 28, 2023
    Copy the full SHA
    3765de3 View commit details

Commits on Aug 29, 2023

  1. Fixes all test (#400)

    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 29, 2023
    Copy the full SHA
    cb643c1 View commit details
  2. Chore/nilcheck (#401)

    * Now ExecuteWithContext and fetchMatchingRule are not allow nil KnowledgeBase
    
    * Fixed concurrency test that seems number overflows uint, and added NilKnowledgeBasePanic_test.go
    
    ---------
    
    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 29, 2023
    Copy the full SHA
    8da01ee View commit details
  3. Fixed issue #373 (#402)

    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Aug 29, 2023
    Copy the full SHA
    eb4f61d View commit details

Commits on Sep 19, 2023

  1. Added attempt to show rule name when Rule entry fails (#408)

    Co-authored-by: Ferdinand Neman <ferdinand@hyperjump.tech>
    newm4n and Ferdinand Neman authored Sep 19, 2023
    1
    Copy the full SHA
    7272ef7 View commit details

Commits on Jan 30, 2024

  1. Copy the full SHA
    e4e90fe View commit details
Showing with 64,439 additions and 1,879 deletions.
  1. +3 −10 .github/workflows/build-test-workflow.yml
  2. +256 −0 .golangci.yaml
  3. +0 −7 Makefile
  4. +1 −28 README.md
  5. +369 −261 antlr/GruleParserV3Listener.go
  6. +16 −15 antlr/ParserCommon.go
  7. +6 −0 antlr/Stack.go
  8. +5 −5 antlr/parser/grulev3/grulev3_parser.go
  9. +5 −0 ast/ArgumentList.go
  10. +10 −0 ast/ArrayMapSelector.go
  11. +16 −0 ast/Assignment.go
  12. +35 −3 ast/Ast.go
  13. +80 −4 ast/BuiltInFunctions.go
  14. +6 −0 ast/Constant.go
  15. +35 −0 ast/DataContext.go
  16. +1 −0 ast/DataContext_test.go
  17. +18 −0 ast/Expression.go
  18. +35 −1 ast/ExpressionAtom.go
  19. +8 −0 ast/FunctionCall.go
  20. +3 −0 ast/Grl.go
  21. +54 −25 ast/KnowledgeBase.go
  22. +33 −9 ast/RuleEntry.go
  23. +1 −0 ast/Salience.go
  24. +693 −368 ast/Serializer.go
  25. +10 −0 ast/ThenExpression.go
  26. +7 −0 ast/ThenExpressionList.go
  27. +6 −0 ast/ThenScope.go
  28. +24 −0 ast/Variable.go
  29. +7 −0 ast/WhenScope.go
  30. +136 −108 ast/WorkingMemory.go
  31. +5 −3 ast/unique/Unique.go
  32. +51 −10 builder/RuleBuilder.go
  33. +21 −0 builder/RuleBuilder_test.go
  34. +1 −1 docs/cn/Function_cn.md
  35. +7 −7 docs/cn/Tutorial_cn.md
  36. +4 −4 docs/en/FAQ_en.md
  37. +1 −1 docs/en/Function_en.md
  38. +2 −2 docs/en/GRL_JSON_en.md
  39. +16 −1 docs/en/Tutorial_en.md
  40. +115 −0 editor/EvaluationRoute.go
  41. +65 −0 editor/Server.go
  42. +106 −0 editor/StaticRoute.go
  43. +11 −0 editor/cmd/Main.go
  44. +770 −0 editor/mime/Mime.go
  45. +4,124 −0 editor/statics/css/bootstrap-grid.css
  46. +1 −0 editor/statics/css/bootstrap-grid.css.map
  47. +7 −0 editor/statics/css/bootstrap-grid.min.css
  48. +1 −0 editor/statics/css/bootstrap-grid.min.css.map
  49. +4,123 −0 editor/statics/css/bootstrap-grid.rtl.css
  50. +1 −0 editor/statics/css/bootstrap-grid.rtl.css.map
  51. +7 −0 editor/statics/css/bootstrap-grid.rtl.min.css
  52. +1 −0 editor/statics/css/bootstrap-grid.rtl.min.css.map
  53. +488 −0 editor/statics/css/bootstrap-reboot.css
  54. +1 −0 editor/statics/css/bootstrap-reboot.css.map
  55. +7 −0 editor/statics/css/bootstrap-reboot.min.css
  56. +1 −0 editor/statics/css/bootstrap-reboot.min.css.map
  57. +485 −0 editor/statics/css/bootstrap-reboot.rtl.css
  58. +1 −0 editor/statics/css/bootstrap-reboot.rtl.css.map
  59. +7 −0 editor/statics/css/bootstrap-reboot.rtl.min.css
  60. +1 −0 editor/statics/css/bootstrap-reboot.rtl.min.css.map
  61. +4,197 −0 editor/statics/css/bootstrap-utilities.css
  62. +1 −0 editor/statics/css/bootstrap-utilities.css.map
  63. +7 −0 editor/statics/css/bootstrap-utilities.min.css
  64. +1 −0 editor/statics/css/bootstrap-utilities.min.css.map
  65. +4,188 −0 editor/statics/css/bootstrap-utilities.rtl.css
  66. +1 −0 editor/statics/css/bootstrap-utilities.rtl.css.map
  67. +7 −0 editor/statics/css/bootstrap-utilities.rtl.min.css
  68. +1 −0 editor/statics/css/bootstrap-utilities.rtl.min.css.map
  69. +10,880 −0 editor/statics/css/bootstrap.css
  70. +1 −0 editor/statics/css/bootstrap.css.map
  71. +7 −0 editor/statics/css/bootstrap.min.css
  72. +1 −0 editor/statics/css/bootstrap.min.css.map
  73. +10,840 −0 editor/statics/css/bootstrap.rtl.css
  74. +1 −0 editor/statics/css/bootstrap.rtl.css.map
  75. +7 −0 editor/statics/css/bootstrap.rtl.min.css
  76. +1 −0 editor/statics/css/bootstrap.rtl.min.css.map
  77. +16 −0 editor/statics/css/index.css
  78. +90 −0 editor/statics/index.html
  79. +7,084 −0 editor/statics/js/bootstrap.bundle.js
  80. +1 −0 editor/statics/js/bootstrap.bundle.js.map
  81. +7 −0 editor/statics/js/bootstrap.bundle.min.js
  82. +1 −0 editor/statics/js/bootstrap.bundle.min.js.map
  83. +5,211 −0 editor/statics/js/bootstrap.esm.js
  84. +1 −0 editor/statics/js/bootstrap.esm.js.map
  85. +7 −0 editor/statics/js/bootstrap.esm.min.js
  86. +1 −0 editor/statics/js/bootstrap.esm.min.js.map
  87. +5,258 −0 editor/statics/js/bootstrap.js
  88. +1 −0 editor/statics/js/bootstrap.js.map
  89. +7 −0 editor/statics/js/bootstrap.min.js
  90. +1 −0 editor/statics/js/bootstrap.min.js.map
  91. +111 −0 editor/statics/js/index.js
  92. +2 −0 editor/statics/js/jquery-3.6.1.min.js
  93. +1,228 −0 editor/statics/js/jquery.mark.js
  94. +5 −0 editor/statics/js/popper.min.js
  95. +80 −18 engine/GruleEngine.go
  96. +31 −16 engine/GruleEngine_test.go
  97. +4 −2 examples/AgeCheckSample_test.go
  98. +2 −1 examples/ArraySliceMap_test.go
  99. +3 −1 examples/CallingFactFunctionExample_test.go
  100. +2 −1 examples/CallingLogExample_test.go
  101. +3 −2 examples/CloneTableIssue_test.go
  102. +5 −6 examples/Concurrency_test.go
  103. +3 −1 examples/EvaluateMissingDataContext_test.go
  104. +4 −2 examples/FunctionCallChaining_test.go
  105. +72 −0 examples/InterfaceDataContext_test.go
  106. +2 −1 examples/Issue108_test.go
  107. +54 −0 examples/Issue328_test.go
  108. +2 −1 examples/Issue4_test.go
  109. +2 −1 examples/Issue5_test.go
  110. +2 −1 examples/Issue7_test.go
  111. +4 −2 examples/ItemArrayExample_test.go
  112. +10 −5 examples/JSONDataContext_test.go
  113. +2 −1 examples/KnowledgeBaseInstancePanic_test.go
  114. +2 −1 examples/MatchingRules_test.go
  115. +2 −1 examples/MemoizeSliceFunction_test.go
  116. +6 −3 examples/Multipe_knowledgebases_test.go
  117. +4 −2 examples/NegationSymbolExample_test.go
  118. +54 −0 examples/NilKnowledgeBasePanic_test.go
  119. +2 −1 examples/NumberExponentExample_test.go
  120. +4 −2 examples/PurcasingTaxSample_test.go
  121. +5 −3 examples/RemoveRuleEntry_test.go
  122. +2 −1 examples/SalienceExample_test.go
  123. +2 −1 examples/Serialization_test.go
  124. +4 −2 examples/StringFunctions_test.go
  125. +2 −1 examples/TutorialExample_test.go
  126. +2 −1 examples/UnicodeRule_test.go
  127. +3 −2 examples/benchmark/ExecRules_benchmark_test.go
  128. +7 −5 examples/benchmark/LoadRules_benchmark_test.go
  129. +39 −10 go.mod
  130. +140 −60 go.sum
  131. +93 −7 logger/Logger.go
  132. +228 −0 logger/Logrus.go
  133. +178 −0 logger/Zap.go
  134. +41 −3 model/DataAccessLayer.go
  135. +1 −2 model/DataAccessLayer_test.go
  136. +105 −18 model/GoDataAccessLayer.go
  137. +77 −6 model/JsonDataAccessLayer.go
  138. +3 −0 model/TimeFormat.go
  139. +2 −0 pkg/CloneTool.go
  140. +285 −149 pkg/JsonResource.go
  141. +29 −92 pkg/JsonResource_test.go
  142. +32 −5 pkg/embeddedResource.go
  143. +1 −0 pkg/embeddedResource_test.go
  144. +3 −0 pkg/errorReporter.go
  145. +11 −8 pkg/gitresource.go
  146. +2 −0 pkg/gitresource_1.10.go
  147. +363 −127 pkg/jsontool/JsonDom.go
  148. +143 −63 pkg/jsontool/JsonDom_test.go
  149. +514 −309 pkg/reflectmath.go
  150. +68 −12 pkg/reflectmath_test.go
  151. +147 −37 pkg/reflectools.go
  152. +63 −10 pkg/resource.go
13 changes: 3 additions & 10 deletions .github/workflows/build-test-workflow.yml
Original file line number Diff line number Diff line change
@@ -9,18 +9,11 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v2
- uses: actions/setup-go@v4
with:
go-version: 1.16
- name: Checkout code
uses: actions/checkout@v2
go-version: '1.20'
- uses: actions/checkout@v3
- name: Fetching dependencies
run : go get -v -t -d ./...
- name: Install GoLint
run : |
go get -d golang.org/x/lint/golint
go install golang.org/x/lint/golint
echo $GOBIN
- name: Execute test
run : make test-short
256 changes: 256 additions & 0 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
run:
skip-dirs:
- src/external_libs
- autogenerated_by_my_lib
skip-files:
- "[\\s\\S]+_test.go$"
# - ".*\\.my\\.go$"
# - lib/bad.go
go: '1.20'
linters:
# Disable all linters.
# Default: false
disable-all: false
# Enable specific linter
# https://golangci-lint.run/usage/linters/#enabled-by-default
enable:
- asasalint
- asciicheck
- bidichk
- bodyclose
- containedctx
- contextcheck
# - contextcheck
# - cyclop
- deadcode
- decorder
# - depguard
- dogsled
# - dupl
# - dupword
- durationcheck
# - errcheck
# - errchkjson
# - errname
# - errorlint
# - execinquery
# - exhaustive
# - exhaustivestruct
# - exhaustruct
# - exportloopref
# - forbidigo
# - forcetypeassert
# - funlen
# - gci
# - ginkgolinter
# - gocheckcompilerdirectives
# - gochecknoglobals
# - gochecknoinits
# - gocognit
# - goconst
# - gocritic
# - gocyclo
# - godot
# - godox
# - goerr113
- gofmt
# - gofumpt
# - goheader
# - goimports
- golint
# - gomnd
# - gomoddirectives
# - gomodguard
# - goprintffuncname
# - gosec
# - gosimple
# - gosmopolitan
# - govet
# - grouper
# - ifshort
# - importas
# - ineffassign
# - interfacebloat
# - interfacer
# - ireturn
# - lll
# - loggercheck
# - maintidx
# - makezero
# - maligned
# - mirror
# - misspell
# - musttag
# - nakedret
# - nestif
# - nilerr
# - nilnil
- nlreturn
- noctx
# - nolintlint
# - nonamedreturns
# - nosnakecase
# - nosprintfhostport
# - paralleltest
# - prealloc
# - predeclared
# - promlinter
# - reassign
# - revive
# - rowserrcheck
# - scopelint
# - sqlclosecheck
# - staticcheck
# - structcheck
# - stylecheck
# - tagalign
# - tagliatelle
# - tenv
# - testableexamples
# - testpackage
# - thelper
# - tparallel
# - typecheck
# - unconvert
# - unparam
- unused
# - usestdlibvars
- varcheck
- varnamelen
# - wastedassign
# - whitespace
# - wrapcheck
# - wsl
# - zerologlint
# Enable all available linters.
# Default: false
enable-all: false
# Disable specific linter
# https://golangci-lint.run/usage/linters/#disabled-by-default
disable:
# - asasalint
# - asciicheck
# - bidichk
# - bodyclose
# - containedctx
# - contextcheck
- cyclop
# - deadcode
# - decorder
- depguard
# - dogsled
- dupl
- dupword
# - durationcheck
- errcheck
- errchkjson
- errname
- errorlint
- execinquery
- exhaustive
- exhaustivestruct
- exhaustruct
- exportloopref
- forbidigo
- forcetypeassert
- funlen
- gci
- ginkgolinter
- gocheckcompilerdirectives
- gochecknoglobals
- gochecknoinits
- gocognit
- goconst
- gocritic
- gocyclo
- godot
- godox
- goerr113
# - gofmt
- gofumpt
- goheader
- goimports
# - golint
- gomnd
- gomoddirectives
- gomodguard
- goprintffuncname
- gosec
- gosimple
- gosmopolitan
- govet
- grouper
- ifshort
- importas
- ineffassign
- interfacebloat
- interfacer
- ireturn
- lll
- loggercheck
- maintidx
- makezero
- maligned
- mirror
- misspell
- musttag
- nakedret
- nestif
- nilerr
- nilnil
# - nlreturn
# - noctx
- nolintlint
- nonamedreturns
- nosnakecase
- nosprintfhostport
- paralleltest
- prealloc
- predeclared
- promlinter
- reassign
- revive
- rowserrcheck
- scopelint
- sqlclosecheck
- staticcheck
- structcheck
- stylecheck
- tagalign
- tagliatelle
- tenv
- testableexamples
- testpackage
- thelper
- tparallel
- typecheck
- unconvert
- unparam
# - unused
- usestdlibvars
# - varcheck
# - varnamelen
- wastedassign
- whitespace
- wrapcheck
- wsl
- zerologlint
# Enable presets.
# https://golangci-lint.run/usage/linters
presets:
# - bugs
# - comment
# - complexity
# - error
# - format
# - import
# - metalinter
# - module
# - performance
# - sql
# - style
# - test
- unused
# Run only fast linters from enabled linters set (first run won't be fast)
# Default: false
fast: false
7 changes: 0 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -9,13 +9,6 @@ build: fix-antlr4-bug
export GO111MODULE on; \
go build ./...

lint: build
ifndef GOBIN
"${GOPATH}/bin/golint" -set_exit_status builder/... engine/... examples/... ast/... pkg/... antlr/. model/...
else
"${GOBIN}/golint" -set_exit_status builder/... engine/... examples/... ast/... pkg/... antlr/. model/...
endif

test-short: build
go test ./... -v -covermode=count -coverprofile=coverage.out -short

29 changes: 1 addition & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@

[![Gopheer Holds The Rule](https://github.com/hyperjumptech/grule-rule-engine/blob/master/gopher-grule.png?raw=true)](https://github.com/hyperjumptech/grule-rule-engine/blob/master/gopher-grule.png?raw=true)

[![Build Status](https://travis-ci.org/hyperjumptech/grule-rule-engine.svg?branch=master)](https://travis-ci.org/hyperjumptech/grule-rule-engine)
[![Build Status](https://circleci.com/gh/hyperjumptech/grule-rule-engine.svg?style=svg)](https://circleci.com/gh/hyperjumptech/grule-rule-engine)
[![Go Report Card](https://github.com/hyperjumptech/grule-rule-engine/actions/workflows/build-test-workflow.yml/badge.svg)](https://github.com/hyperjumptech/grule-rule-engine/actions/workflows/build-test-workflow.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/hyperjumptech/grule-rule-engine)](https://goreportcard.com/report/github.com/hyperjumptech/grule-rule-engine)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

@@ -189,32 +188,6 @@ To dive into the Tutorial, see the Wiki Docs [here on Github](docs/en/Tutorial_e

You can read the [detail report here](docs/en/Benchmarking_en.md)

# Our Contributors

<a href="https://github.com/newm4n"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/3471399?s=60&v=4"></a>
<a href="https://github.com/jinagamvasubabu"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/8560620?s=60&v=4"></a>
<a href="https://github.com/niallnsec"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/21335031?s=60&v=4"></a>
<a href="https://github.com/inhuman"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars0.githubusercontent.com/u/2518263?s=60&v=4"></a>
<a href="https://github.com/ariya"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/7288?s=60&v=4"></a>
<a href="https://github.com/sapiderman"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/964106?s=60&v=4"></a>
<a href="https://github.com/jtr860830"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/13183797?s=60&v=4"></a>
<a href="https://github.com/trancee"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars0.githubusercontent.com/u/1520623?s=60&v=4"></a>
<a href="https://github.com/liouxiao"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars2.githubusercontent.com/u/3435699?s=60&v=4"></a>
<a href="https://github.com/Troush"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars0.githubusercontent.com/u/1163074?s=60&v=4"></a>
<a href="https://github.com/shanhuhai5739"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/3794113?s=60&v=4"></a>
<a href="https://github.com/derekwyatt"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/62324?s=60&v=4"></a>
<a href="https://github.com/garychristianto"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/50298986?s=60&v=4"></a>
<a href="https://github.com/sourcesoft"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars2.githubusercontent.com/u/608906?s=60&v=4"></a>
<a href="https://github.com/sdowding-koho"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/62896133?s=60&v=4"></a>
<a href="https://github.com/yomashExpel"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/25300754?s=60&v=4"></a>
<a href="https://github.com/avisdsouza"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/8979874?s=60&v=4"></a>
<a href="https://github.com/zct"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars3.githubusercontent.com/u/4023051?s=60&v=4"></a>
<a href="https://github.com/enricoojf"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars2.githubusercontent.com/u/17194541?s=60&v=4"></a>
<a href="https://github.com/vlean"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars1.githubusercontent.com/u/7309530?s=60&v=4"></a>
<a href="https://github.com/plasticmacaroni"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars.githubusercontent.com/u/9966671?s=60&v=4"></a>
<a href="https://github.com/sw7190"><img style="border-radius: 50%;" width="50px" height="50px" src="https://avatars.githubusercontent.com/u/28668763?s=60&v=4"></a>


# Tasks and Help Wanted

Yes. We need contributors to make Grule even better and useful to the Open Source Community.
Loading