---
id: plugins-codecs
title: "Codecs"
summary: "The 4 plugins in Codecs: ASN.1 decoder, ASN.1 encoder, CSV decoder and 1 more."
audience: user
keywords: "Asn1DecoderPlugin, Asn1EncoderPlugin, CsvDecoderPlugin, CsvEncoderPlugin"
---
# Codecs

Turn files into records and records into files. The **CSV** decoder and encoder handle delimited text; the **ASN.1** decoder and encoder handle binary BER files such as telecom call detail records, with flow types generated from the ASN.1 module.

```text
Read file → CSV decoder → Table writer
Sql query → CSV encoder → Write file
```

Encoders write the records of one batch, such as one query result, into one file.

## Plugins

| Plugin | What it does | Pins |
|---|---|---|
| [ASN.1 decoder](/documentation/plugins/codecs/asn1-decoder-plugin) | Decodes a binary ASN.1 stream (for example telecom CDR files) into typed records. Flow types are generated from an ASN.1 module definition; every top-level record found in the stream is emitted on `Output`. | `Input`, `Output`, `Header`, `Continue` |
| [ASN.1 encoder](/documentation/plugins/codecs/asn1-encoder-plugin) | Encodes typed records into an ASN.1 BER file (for example telecom CDR files). Flow types are generated from an ASN.1 module definition, the same way the ASN.1 decoder does it; every record received on `Input` is encoded and appended to the current file, which is emitted on `Output`. | `Input`, `Output` |
| [CSV decoder](/documentation/plugins/codecs/csv-decoder-plugin) | Splits CSV text into records: every line becomes one record of a flow type generated from the configured header names, all properties being strings. Input is a text record or a file stream. | `Input`, `Output`, `Continue` |
| [CSV encoder](/documentation/plugins/codecs/csv-encoder-plugin) | Encodes records into CSV: one line per record, one column per configured property. The records of a batch (e.g. one Sql query execution, one file read) go into one CSV file, emitted as an in-memory file stream when the batch completes, ready for a file or blob writer. | `Input`, `Output` |
