cel-go
Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)
File Explorer
Download Latest Version (.zip)- bug_report.md
- feature_request.md
- tag-submodules.yml
- BUILD.bazel
- proto_source_info.bzl
- async.go
- async_test.go
- BUILD.bazel
- authoring.tmpl
- basic.prompt.txt
- BUILD.bazel
- field_paths.prompt.txt
- macros.prompt.txt
- mutant.proto
- standard_env.prompt.txt
- team.fds
- team.proto
- test_fds_with_source_info-transitive-descriptor-set-source-info.proto.bin
- BUILD.bazel
- cel.go
- cel_example_test.go
- cel_test.go
- decls.go
- decls_test.go
- env.go
- env_test.go
- fieldpaths.go
- fieldpaths_test.go
- folding.go
- folding_test.go
- inlining.go
- inlining_test.go
- io.go
- io_test.go
- library.go
- macro.go
- macro_test.go
- optimizer.go
- optimizer_test.go
- options.go
- program.go
- program_async_test.go
- prompt.go
- prompt_test.go
- validator.go
- validator_test.go
- BUILD.bazel
- decls.go
- BUILD.bazel
- checker.go
- checker_test.go
- cost.go
- cost_test.go
- env.go
- env_test.go
- errors.go
- format.go
- format_test.go
- mapping.go
- options.go
- printer.go
- scopes.go
- types.go
- codelab.go
- codelab.go
- go.mod
- go.sum
- README.md
- ast.go
- ast_test.go
- BUILD.bazel
- conversion.go
- conversion_test.go
- expr.go
- expr_test.go
- factory.go
- navigable.go
- navigable_test.go
- BUILD.bazel
- container.go
- container_test.go
- BUILD.bazel
- cost.go
- cost_test.go
- BUILD.bazel
- debug.go
- BUILD.bazel
- decls.go
- decls_test.go
- context_env.yaml
- extended_env.yaml
- json_env.json
- subset_env.yaml
- BUILD.bazel
- env.go
- env_test.go
- io.go
- io_test.go
- BUILD.bazel
- functions.go
- BUILD.bazel
- operators.go
- BUILD.bazel
- overloads.go
- buffer.go
- buffer_test.go
- BUILD.bazel
- BUILD.bazel
- standard.go
- BUILD.bazel
- checked.go
- enum.go
- equal.go
- equal_test.go
- file.go
- file_test.go
- pb.go
- pb_test.go
- type.go
- type_test.go
- BUILD.bazel
- provider.go
- reference.go
- BUILD.bazel
- comparer.go
- container.go
- field_tester.go
- indexer.go
- iterator.go
- lister.go
- mapper.go
- matcher.go
- math.go
- receiver.go
- sizer.go
- traits.go
- zeroer.go
- aggregate_sizer.go
- any_value.go
- bool.go
- bool_test.go
- BUILD.bazel
- bytes.go
- bytes_test.go
- compare.go
- doc.go
- double.go
- double_test.go
- duration.go
- duration_test.go
- err.go
- format.go
- int.go
- int_test.go
- iterator.go
- json_list_test.go
- json_struct_test.go
- json_value.go
- list.go
- list_test.go
- map.go
- map_test.go
- memory_tracker.go
- memory_tracker_test.go
- native.go
- native_test.go
- null.go
- null_test.go
- object.go
- object_test.go
- optional.go
- optional_test.go
- overflow.go
- provider.go
- provider_test.go
- regex.go
- regex_test.go
- size_calc.go
- size_calc_test.go
- string.go
- string_test.go
- struct.go
- timestamp.go
- timestamp_test.go
- type_test.go
- types.go
- types_test.go
- uint.go
- uint_test.go
- unknown.go
- unknown_test.go
- util.go
- util_test.go
- BUILD.bazel
- cost.go
- doc.go
- doc_test.go
- error.go
- errors.go
- errors_test.go
- location.go
- source.go
- source_test.go
- BUILD.bazel
- cel_policy_conformance_test.bzl
- conformance_test.sh
- policy_conformance_test.go
- BUILD.bazel
- conformance_test.bzl
- conformance_test.go
- conformance_test.sh
- go.mod
- go.sum
- example_cel_advanced_test.go
- example_cel_collections_test.go
- example_cel_compile_test.go
- example_cel_context_eval_test.go
- example_cel_custom_functions_test.go
- example_cel_custom_macros_test.go
- example_cel_execution_cost_test.go
- example_cel_logic_and_conditions_test.go
- example_cel_native_structs_test.go
- example_cel_operators_test.go
- example_cel_protocol_buffers_test.go
- example_cel_strings_and_numbers_test.go
- example_cel_time_test.go
- example_cel_transforming_data_test.go
- example_cel_type_conversions_test.go
- README.md
- BUILD.bazel
- hmac.go
- hmac_test.go
- BUILD.bazel
- export_test.go
- jwt.go
- jwt_test.go
- go.mod
- go.sum
- bindings.go
- bindings_test.go
- BUILD.bazel
- comprehensions.go
- comprehensions_test.go
- costs.go
- encoders.go
- encoders_test.go
- extension_option_factory.go
- extension_option_factory_test.go
- formatting.go
- formatting_test.go
- formatting_v2.go
- formatting_v2_test.go
- guards.go
- lists.go
- lists_test.go
- math.go
- math_test.go
- native.go
- native_test.go
- network.go
- network_test.go
- protos.go
- protos_test.go
- README.md
- regex.go
- regex_test.go
- sets.go
- sets_test.go
- strings.go
- strings_test.go
- BUILD.bazel
- functions.go
- activation.go
- activation_test.go
- async.go
- async_test.go
- attribute_patterns.go
- attribute_patterns_test.go
- attributes.go
- attributes_test.go
- BUILD.bazel
- decorators.go
- dispatcher.go
- evalstate.go
- frame.go
- frame_test.go
- interpretable.go
- interpreter.go
- interpreter_test.go
- optimizations.go
- planner.go
- prune.go
- prune_test.go
- runtimecost.go
- runtimecost_test.go
- BUILD.bazel
- CEL.g4
- CEL.interp
- CEL.tokens
- cel_base_listener.go
- cel_base_visitor.go
- cel_lexer.go
- cel_listener.go
- cel_parser.go
- cel_visitor.go
- CELLexer.interp
- CELLexer.tokens
- doc.go
- generate.sh
- BUILD.bazel
- errors.go
- helper.go
- helper_test.go
- input.go
- macro.go
- macro_test.go
- options.go
- parser.go
- parser_test.go
- unescape.go
- unescape_test.go
- unparser.go
- unparser_test.go
- BUILD.bazel
- cel_test_runner.go
- k8s_cel_test_runner.go
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- base_config.yaml
- config.yaml
- partial_config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- tests.yaml
- config.yaml
- policy.yaml
- config.yaml
- policy.yaml
- BUILD.bazel
- compiler.go
- compiler_test.go
- composer.go
- composer_test.go
- config.go
- config_test.go
- conformance.go
- go.mod
- go.sum
- helper_test.go
- parser.go
- parser_test.go
- README.md
- source.go
- test_tag_handler_k8s.go
- yaml.go
- yaml_test.go
- BUILD.bazel
- main.go
- README.md
- BUILD.bazel
- Commands.g4
- Commands.interp
- Commands.tokens
- commands_base_listener.go
- commands_base_visitor.go
- commands_lexer.go
- commands_listener.go
- commands_parser.go
- commands_test.go
- commands_visitor.go
- CommandsLexer.interp
- CommandsLexer.tokens
- regen.sh
- attribute_context_fds.textproto
- multiline_test_env.yaml
- test_env.yaml
- BUILD.bazel
- commands.go
- commands_test.go
- evaluator.go
- evaluator_test.go
- go.mod
- go.sum
- typefmt.go
- typefmt_test.go
- verify-vendor.sh
- bench.go
- bench_test.go
- BUILD.bazel
- BUILD.bazel
- test_all_types.pb.go
- test_all_types.proto
- test_extensions.pb.go
- test_extensions.proto
- BUILD.bazel
- test_all_types.pb.go
- test_all_types.proto
- test_import.pb.go
- test_import.proto
- async.go
- BUILD.bazel
- cel_go_test.bzl
- compare.go
- expr.go
- protos.md
- suite.go
- config.yaml
- custom_policy.celpolicy
- custom_policy_tests.yaml
- raw_expr.cel
- raw_expr_tests.yaml
- BUILD.bazel
- test_coverage_reporter.go
- test_coverage_reporter_test.go
- test_runner.go
- test_runner_test.go
- config.yaml
- BUILD.bazel
- compiler.go
- compiler_test.go
- BUILD.bazel
- go.mod
- go.sum
- BUILD.bazel
- test_all_types.pb.go
- .bazelversion
- .gitattributes
- .gitignore
- BUILD.bazel
- checked.pb.go
- cloudbuild.yaml
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- eval.pb.go
- explain.pb.go
- GOVERNANCE.md
- LICENSE
- MAINTAINERS.md
- MODULE.bazel
- README.md
- regen_go_proto.sh
- regen_go_proto_canonical_protos.sh
- syntax.pb.go
- value.pb.go
- WORKSPACE
- WORKSPACE.bzlmod
- .gitignore
- antlrdoc.go
- atn.go
- atn_config.go
- atn_config_set.go
- atn_deserialization_options.go
- atn_deserializer.go
- atn_simulator.go
- atn_state.go
- atn_type.go
- char_stream.go
- common_token_factory.go
- common_token_stream.go
- comparators.go
- configuration.go
- dfa.go
- dfa_serializer.go
- dfa_state.go
- diagnostic_error_listener.go
- error_listener.go
- error_strategy.go
- errors.go
- file_stream.go
- input_stream.go
- int_stream.go
- interval_set.go
- jcollect.go
- lexer.go
- lexer_action.go
- lexer_action_executor.go
- lexer_atn_simulator.go
- LICENSE
- ll1_analyzer.go
- mutex.go
- mutex_nomutex.go
- nostatistics.go
- parser.go
- parser_atn_simulator.go
- parser_rule_context.go
- prediction_context.go
- prediction_context_cache.go
- prediction_mode.go
- README.md
- recognizer.go
- rule_context.go
- semantic_context.go
- statistics.go
- stats_data.go
- token.go
- token_source.go
- token_stream.go
- tokenstream_rewriter.go
- trace_listener.go
- transition.go
- tree.go
- trees.go
- utils.go
- debug_disable.go
- debug_enable.go
- diff.go
- flags.go
- func.go
- name.go
- pointer.go
- sort.go
- compare.go
- export.go
- options.go
- path.go
- report.go
- report_compare.go
- report_references.go
- report_reflect.go
- report_slices.go
- report_text.go
- report_value.go
- LICENSE
- apic.go
- decode.go
- emitterc.go
- encode.go
- LICENSE
- NOTICE
- parserc.go
- readerc.go
- README.md
- resolve.go
- scannerc.go
- sorter.go
- writerc.go
- yaml.go
- yamlh.go
- yamlprivateh.go
- constraints.go
- cmp.go
- slices.go
- sort.go
- zsortanyfunc.go
- zsortordered.go
- LICENSE
- PATENTS
- common.go
- message.go
- plural.go
- tables.go
- catmsg.go
- codec.go
- varint.go
- format.go
- parser.go
- compact.go
- language.go
- parents.go
- tables.go
- tags.go
- common.go
- compact.go
- compose.go
- coverage.go
- language.go
- lookup.go
- match.go
- parse.go
- tables.go
- tags.go
- common.go
- decimal.go
- format.go
- number.go
- pattern.go
- roundingmode_string.go
- tables.go
- set.go
- tag.go
- internal.go
- match.go
- coverage.go
- doc.go
- language.go
- match.go
- parse.go
- tables.go
- tags.go
- catalog.go
- dict.go
- go19.go
- gopre19.go
- catalog.go
- doc.go
- format.go
- message.go
- print.go
- LICENSE
- PATENTS
- checked.pb.go
- eval.pb.go
- explain.pb.go
- syntax.pb.go
- value.pb.go
- LICENSE
- status.pb.go
- LICENSE
- decode.go
- doc.go
- encode.go
- well_known_types.go
- decode.go
- doc.go
- encode.go
- wire.go
- stringer.go
- options.go
- rand.go
- defaults.go
- editions_defaults.binpb
- editions.go
- default.go
- decode.go
- decode_number.go
- decode_string.go
- decode_token.go
- encode.go
- messageset.go
- tag.go
- decode.go
- decode_number.go
- decode_string.go
- decode_token.go
- doc.go
- encode.go
- errors.go
- build.go
- desc.go
- desc_init.go
- desc_lazy.go
- desc_list.go
- desc_list_gen.go
- editions.go
- placeholder.go
- presence.go
- build.go
- flags.go
- proto_legacy_disable.go
- proto_legacy_enable.go
- any_gen.go
- api_gen.go
- descriptor_gen.go
- doc.go
- duration_gen.go
- empty_gen.go
- field_mask_gen.go
- go_features_gen.go
- goname.go
- map_entry.go
- name.go
- source_context_gen.go
- struct_gen.go
- timestamp_gen.go
- type_gen.go
- wrappers.go
- wrappers_gen.go
- api_export.go
- api_export_opaque.go
- bitmap.go
- bitmap_race.go
- checkinit.go
- codec_extension.go
- codec_field.go
- codec_field_opaque.go
- codec_gen.go
- codec_map.go
- codec_message.go
- codec_message_opaque.go
- codec_messageset.go
- codec_tables.go
- codec_unsafe.go
- convert.go
- convert_list.go
- convert_map.go
- decode.go
- encode.go
- enum.go
- equal.go
- extension.go
- lazy.go
- legacy_enum.go
- legacy_export.go
- legacy_extension.go
- legacy_file.go
- legacy_message.go
- merge.go
- merge_gen.go
- message.go
- message_opaque.go
- message_opaque_gen.go
- message_reflect.go
- message_reflect_field.go
- message_reflect_field_gen.go
- message_reflect_gen.go
- pointer_unsafe.go
- pointer_unsafe_opaque.go
- presence.go
- validate.go
- order.go
- range.go
- pragma.go
- bufferreader.go
- lazy.go
- pointer_unsafe.go
- ints.go
- strings.go
- strings_unsafe.go
- version.go
- checkinit.go
- decode.go
- decode_gen.go
- doc.go
- encode.go
- encode_gen.go
- equal.go
- extension.go
- merge.go
- messageset.go
- proto.go
- proto_methods.go
- proto_reflect.go
- reset.go
- size.go
- size_gen.go
- wrapperopaque.go
- wrappers.go
- desc.go
- desc_init.go
- desc_resolve.go
- desc_validate.go
- editions.go
- proto.go
- methods.go
- proto.go
- source.go
- source_gen.go
- type.go
- value.go
- value_equal.go
- value_union.go
- value_unsafe.go
- registry.go
- legacy.go
- methods.go
- impl.go
- version.go
- descriptor.pb.go
- dynamic.go
- types.go
- go_features.pb.go
- any.pb.go
- duration.pb.go
- empty.pb.go
- field_mask.pb.go
- struct.pb.go
- timestamp.pb.go
- wrappers.pb.go
- LICENSE
- PATENTS
- modules.txt
- .bazelrc
- .bazelversion
- .gitattributes
- .gitignore
- BUILD.bazel
- cloudbuild.yaml
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- go.mod
- go.sum
- LICENSE
- MODULE.bazel
- PULL_REQUEST_TEMPLATE.md
- README.md
- repositories.bzl
# Installation Guide
1. Get the code
git clone https://github.com/cel-expr/cel-go
Downloads the entire project code from GitHub to your computer.
cd cel-go
Moves into the project folder you just downloaded.
2. Go
Medium RecommendedPrerequisites
cd codelab
This project's files live in a subfolder, so move into it first.
go build ./...
Compiles the Go program into an executable.
go run .
Runs the Go program directly without a separate build step.
If the build finishes without errors, it worked. If you used go run ., check the terminal output.
// repository documentation
Was this content helpful?
(0 ratings)
