# `rq` [](https://travis-ci.org/dflemstr/rq) [](https://ci.appveyor.com/project/dflemstr/rq) [](https://crates.io/crates/record-query) [](http://www.rust-lang.org/)
**NOTE**: `rq` is in very low maintenance mode as my day job is taking up
a lot of my time. I will try my best to merge pull requests but will
not drive active development of this crate.
**NOTE**: `rq` no longer ships with query support and a Javascript
engine is not included; instead, it focuses exclusively on format
transformation. You can still pipe into a runtime like node.js if
you need Javascript evaluation. Please see [this issue](https://github.com/dflemstr/rq/issues/208)
to discuss introducing a new query language.
This is the home of the tool called `rq` (record query). It's a tool
that's used for performing queries on streams of records in various
formats.
The goal is to make ad-hoc exploration of data sets easy without
having to use more heavy-weight tools like SQL/MapReduce/custom
programs. `rq` fills a similar niche as tools like `awk` or `sed`,
but works with structured (record) data instead of text.
It was created with love out of the best parts of Rust, and is
distributed as a dependency-free binary on many operating systems and
architectures.
## Quick links
- [Installation](doc/installation.md) — How to install `rq`.
- [Tutorial](doc/tutorial.md) — Learn `rq` from scratch.
- [Protobuf](doc/protobuf.md) — Configure Protobuf specifics.
- [Development](CONTRIBUTING.md) — Contribute to `rq`.
## Format support status
| Apache Avro | ✔️ | ✔️ |
| CBOR | ✔️ | ✔️ |
| JSON | ✔️ | ✔️ |
| MessagePack | ✔️ | ✔️ |
| Google Protocol Buffers | ✔️ | ✖️ |
| YAML | ✔️ | ✔️ |
| TOML | ✔️ | ✔️ |
| Raw (plain text) | ✔️ | ✔️ |
| CSV | ✔️ | ✔️ |