Skip to content
Back to skills

Fast Yaml

ASecurity

Validate, format, and convert YAML/JSON files using the fast-yaml (fy) tool. Supports bidirectional YAML/JSON conversion and the YAML 1.2.2 spec with parallel processing for batch operations.

  • 11 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsjavascripttypescriptpythonrustgojavabashnodenodejskubernetes

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 5 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add bug-ops/claude-plugins --skill fast-yaml --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fast Yaml?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fast Yaml
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bug-ops-fast-yaml/badge)](https://www.skillsdirectory.com/skills/bug-ops-fast-yaml)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fast-yaml
description: "Validate, format, and convert YAML/JSON files using the fast-yaml (fy) tool. Supports bidirectional YAML/JSON conversion and the YAML 1.2.2 spec with parallel processing for batch operations."
when_to_use: "'validate yaml', 'format yaml', 'lint yaml', 'check yaml syntax', 'convert yaml to json', 'convert json to yaml', 'yaml formatter', 'fix yaml formatting', 'json to yaml'."
effort: low
allowed-tools: Bash(fy *), Bash(pip *), Bash(npm *), Bash(cargo *)
---

# fast-yaml (fy) Tool

Professional YAML validation, formatting, and conversion tool with YAML 1.2.2 spec compliance and parallel processing capabilities.

> [!IMPORTANT]
> fast-yaml follows YAML 1.2.2 specification, which differs from PyYAML (1.1). Notable differences: `yes/no/on/off` are strings (not booleans), octal numbers use `0o` prefix.

## Quick Reference

| Operation | Command | Description |
|-----------|---------|-------------|
| Validate | `fy parse config.yaml` | Check YAML syntax |
| Format | `fy format -i config.yaml` | Format file in-place |
| Lint | `fy lint config.yaml` | Validate with diagnostics |
| YAML → JSON | `fy convert json config.yaml` | Convert YAML to JSON |
| JSON → YAML | `fy convert yaml config.json` | Convert JSON to YAML |
| Batch format | `fy format -i src/` | Format entire directory |
| Parallel | `fy format -i -j 8 project/` | Use 8 parallel workers |

## Installation

### CLI Tool

```bash
# Rust (recommended for CLI)
cargo install fast-yaml-cli

# Verify installation
fy --version
```

### Python API

```bash
# Python bindings
pip install fastyaml-rs

# Verify installation
python -c "import fast_yaml; print(fast_yaml.__version__)"
```

### Node.js API

```bash
# Node.js bindings
npm install fastyaml-rs

# Verify installation
node -e "const fy = require('fastyaml-rs'); console.log('OK')"
```

> [!NOTE]
> Requires Rust 1.88+, Python 3.10+, or Node.js 20+ depending on the installation method.

## Common Workflows

### Single File Validation

```bash
# Validate syntax only
fy parse config.yaml

# Validate with detailed diagnostics
fy lint config.yaml

# Format and save
fy format -i config.yaml
```

### Batch Processing

```bash
# Format all YAML files in directory
fy format -i src/

# Use glob patterns
fy format -i "**/*.yaml"

# Parallel processing (8 workers)
fy format -i -j 8 project/

# Lint with exclusions
fy lint --exclude "tests/**" .
```

> [!TIP]
> Use parallel processing (`-j` flag) for large codebases. Batch mode provides 6-15x speedup on multi-file operations.

### Format Conversion

#### YAML → JSON

```bash
# Convert to JSON (pretty-printed)
fy convert json config.yaml

# Compact JSON (no whitespace)
fy convert json --pretty false config.yaml

# Save to file
fy convert json config.yaml > config.json
```

#### JSON → YAML

```bash
# Convert to YAML
fy convert yaml config.json

# Convert and save
fy convert yaml config.json > config.yaml

# In-place conversion
fy convert yaml -i config.json
```

> [!TIP]
> Bidirectional conversion is seamless. Use `fy convert yaml` for JSON → YAML and `fy convert json` for YAML → JSON.

## Python Integration

For programmatic YAML processing in Python:

```python
import fast_yaml

# Load YAML
data = fast_yaml.safe_load(yaml_string)

# Dump YAML with formatting
yaml_str = fast_yaml.safe_dump(data, indent=2, width=80)

# Lint with diagnostics
from fast_yaml._core.lint import lint
diagnostics = lint(yaml_string)
for diag in diagnostics:
    print(f"{diag.severity}: {diag.message} at line {diag.span.start.line}")
```

See [references/python-api.md](references/python-api.md) for complete Python API reference.

## Node.js Integration

For TypeScript/JavaScript projects:

```typescript
import { safeLoad, safeDump } from 'fastyaml-rs';

const data = safeLoad(`name: fast-yaml`);
const yamlStr = safeDump(data);
```

See [references/nodejs-api.md](references/nodejs-api.md) for complete Node.js API reference.

## YAML 1.2.2 Compliance

> [!WARNING]
> fast-yaml uses YAML 1.2.2 spec, which differs from PyYAML (1.1). Review [references/yaml-spec.md](references/yaml-spec.md) for migration guide.

Key differences from PyYAML (1.1):

| Value | PyYAML (1.1) | fast-yaml (1.2.2) |
|-------|--------------|-------------------|
| `yes/no` | Boolean | String |
| `on/off` | Boolean | String |
| `014` | 12 (octal) | 14 (decimal) |
| `0o14` | Error | 12 (octal) |

## Performance Characteristics

- **Small/medium files**: Matches PyYAML C (1.3-1.4x faster than js-yaml)
- **Batch mode**: 6-15x faster than sequential processors
- **Parallel documents**: 3-6x speedup on 4-8 core systems

> [!CAUTION]
> Process startup overhead (~15ms Python, ~20-25ms Node.js) affects single-file benchmarks. Use persistent servers or batch mode for best performance.

## When to Use This Skill

Use fast-yaml when you need to:

- **Validate YAML files** before deployment or CI/CD
- **Format YAML consistently** across a codebase
- **Convert YAML to JSON** for tooling compatibility
- **Lint YAML files** for syntax errors and best practices
- **Batch process** multiple YAML files with parallel execution
- **Ensure YAML 1.2.2 compliance** for standards conformance

## Additional Resources

- **CLI Reference**: [references/cli-commands.md](references/cli-commands.md) - Complete CLI command documentation
- **Python API**: [references/python-api.md](references/python-api.md) - Python integration examples
- **Node.js API**: [references/nodejs-api.md](references/nodejs-api.md) - TypeScript/JavaScript usage
- **YAML 1.2.2 Spec**: [references/yaml-spec.md](references/yaml-spec.md) - Specification differences and migration guide

## Examples

### Format All Kubernetes Manifests

```bash
# Format all k8s manifests in parallel
fy format -i -j 4 k8s/

# Verify no syntax errors
fy lint k8s/
```

### CI/CD Validation

```bash
# Validate all YAML in repository
fy lint --exclude "node_modules/**" --exclude ".git/**" .

# Format check (exit code 1 if changes needed)
fy format --check .
```

### Python Data Validation

```python
import fast_yaml
from fast_yaml._core.lint import lint

# Load and validate config
config_yaml = open("config.yaml").read()
diagnostics = lint(config_yaml)

if diagnostics:
    for diag in diagnostics:
        print(f"Error at line {diag.span.start.line}: {diag.message}")
    exit(1)

config = fast_yaml.safe_load(config_yaml)
```

## Troubleshooting

### Boolean Values Not Parsing as Expected

fast-yaml follows YAML 1.2.2, where `yes/no/on/off` are strings. Use explicit `true/false`:

```yaml
# Old (YAML 1.1 - PyYAML)
enabled: yes

# New (YAML 1.2.2 - fast-yaml)
enabled: true
```

See [references/yaml-spec.md](references/yaml-spec.md) for complete migration guide.

### Performance Not Improving in Batch Mode

Ensure you're using directory paths or glob patterns to activate batch mode:

```bash
# ❌ Sequential (slow)
for f in *.yaml; do fy format -i "$f"; done

# ✅ Batch mode (fast)
fy format -i .
```

Files in this skill

  • SKILL.md6.8 KB
  • references/cli-commands.md9.5 KB
  • references/nodejs-api.md17.4 KB
  • references/python-api.md14.7 KB
  • references/yaml-spec.md11.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…