> For the complete documentation index, see [llms.txt](https://lune.gitbook.io/lune/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lune.gitbook.io/lune/api-reference/serde.md).

# serde

Built-in serialization/deserialization & encoding/decoding functions

### Example usage

```lua
local fs = require("@lune/fs")
local serde = require("@lune/serde")

-- Parse different file formats into lua tables
local someJson = serde.decode("json", fs.readFile("myFile.json"))
local someToml = serde.decode("toml", fs.readFile("myFile.toml"))
local someYaml = serde.decode("yaml", fs.readFile("myFile.yaml"))

-- Write lua tables to files in different formats
fs.writeFile("myFile.json", serde.encode("json", someJson))
fs.writeFile("myFile.toml", serde.encode("toml", someToml))
fs.writeFile("myFile.yaml", serde.encode("yaml", someYaml))
```

***

## Functions

### decode

```lua
function Serde.decode(format: EncodeDecodeFormat, encoded: string)
```

Decodes the given string using the given format into a lua value.

### encode

```lua
function Serde.encode(format: EncodeDecodeFormat, value: any, pretty: boolean?)
```

Encodes the given value using the given format.

***

## Types

### EncodeDecodeFormat

```lua
type EncodeDecodeFormat = "json" | "yaml" | "toml"
```
