vrl 0.28.0

Vector Remap Language
Documentation
# Vector Remap Language (VRL)

[![Crates.io](https://img.shields.io/crates/v/vrl?style=flat-square)](https://crates.io/crates/vrl)
[![docs.rs](https://img.shields.io/docsrs/vrl?style=flat-square)](https://docs.rs/vrl/0.4.0/vrl/)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/vectordotdev/vrl/test.yml?style=flat-square)

VRL is a scripting language for processing observability data (logs, metrics, traces). Although VRL was originally
created for use in [Vector], it was designed to be generic and re-usable in many contexts.

VRL is maintained by
Datadog's [Community Open Source Engineering team](https://opensource.datadoghq.com/about/#the-community-open-source-engineering-team).

## Features

VRL is broken up into multiple components, which can be enabled as needed.

| Feature        | Default | Description                                                                                                   |
|:---------------|:--------|:--------------------------------------------------------------------------------------------------------------|
| compiler       | yes     | The contains the core functionality of VRL. Compiling and running VRL programs.                               |
| parser         | yes     | Creates an abstract syntax tree (AST) from VRL source code.                                                   |
| value          | yes     | Contains the primary data type used in VRL.                                                                   |
| diagnostic     | yes     | Logic related to errors and displaying info about them.                                                       |
| path           | yes     | Contains the parser, datatypes, and functions related to VRL paths.                                           |
| stdlib         | yes     | All of the VRL functions from the standard library.                                                           |
| core           | yes     | Various data structures and utility methods (these may be renamed / moved in the future).                     |
| datadog_filter | yes     | Implements the Datadog log search query filter syntax.                                                        |
| datadog_grok   | yes     | Implements the Datadog grok parser. (used with `parse_grok` and `parse_groks` in the stdlib).                 |
| datadog_search | yes     | Implements the Datadog log search syntax.                                                                     |
| cli            | no      | Contains functionality to create a CLI for VRL.                                                               |
| test_framework | no      | Contains the test framework for testing VRL functions. Useful for testing custom functions.                   |
| lua            | no      | Makes the `Value` type compatible with the `mlua` crate.                                                      |
| arbitrary      | no      | Implements `Arbitrary` (from the `quickcheck` crate) for the `Value` type                                     |
| test           | no      | Enables testing utils and additional tests, including those with external dependencies such as network calls. |

## Webassembly

All of the core features, and most of the standard library functions can be compiled with the `wasm32-unknown-unknown` target.
There are a few stdlib functions that are unsupported. These will still compile, but abort at runtime.

Unsupported functions:
- `parse_grok`
- `parse_groks`
- `log`
- `get_hostname`
- `reverse_dns`
- `http_request`



[vector]: https://vector.dev
[vrl]: https://vrl.dev