awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
go-yaml avatar

go-yaml/yamlArchived

0
View on GitHub↗
7,023 stars·1,108 forks·Go·29 views

Yaml

This library is a YAML encoder and decoder for native Go data structures. It provides the tools necessary to transform internal data into YAML formatted text and convert YAML input streams back into structured data.

The parser includes built-in protections against resource exhaustion attacks by enforcing limits on document depth and alias resolution. It also ensures deterministic output by employing consistent key sorting for maps.

The project covers serialization and deserialization workflows, including struct mapping and custom marshaling interfaces. It also handles input encoding detection and strict field validation during the decoding process.

Features

  • YAML Processing - Provides a complete system for decoding YAML encoded bytes or streams into native Go data structures.
  • YAML Parsers - Implements a complete library for encoding and decoding YAML data into native Go data structures.
  • Resource-Constrained Parsing - Provides a YAML decoder with built-in protections against DoS attacks via depth and alias limits.
  • YAML Configuration Files - Enables the reading and validation of YAML configuration files to initialize application settings in Go.
  • Data Serialization Formats - Provides workflows for converting complex Go data structures into standardized YAML for storage or transmission.
  • Interface-Based Marshaling - Allows custom types to define their own encoding logic by implementing standard marshaler interfaces.
  • YAML-to-Object Mapping - Maps YAML data to typed Go structs using inline annotations to link keys to embedded types.
  • Deterministic Serialization - Produces consistently ordered YAML output from maps to ensure stable version control diffs and predictable exports.
  • Document Security Limits - Parses untrusted YAML input while enforcing strict limits on document depth and aliases to prevent resource exhaustion.
  • Computational Resource Protections - Protects against denial-of-service attacks by enforcing maximum limits on document depth and alias counts.
  • Deserialization Depth Limiting - Provides security-driven limits on the nesting level of objects during deserialization to prevent resource exhaustion attacks.
  • Reflection-Based Map Mapping - Employs language reflection and struct tags to dynamically map YAML keys to typed Go struct fields.
  • Key Sorting - Ensures deterministic YAML output by consistently sorting map keys regardless of their types.
  • Configuration Management - YAML parsing library.
  • JSON and Data Serialization - Library for encoding and decoding YAML data structures.

Star history

Star history chart for go-yaml/yamlStar history chart for go-yaml/yaml

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Yaml

Similar open-source projects, ranked by how many features they share with Yaml.
  • aaubry/yamldotnetaaubry avatar

    aaubry/YamlDotNet

    2,807View on GitHub↗

    YamlDotNet is a YAML serialization library and data mapping tool for .NET. It functions as a parser and generator that converts between .NET objects and YAML formatted text for data storage and configuration. The project provides capabilities for YAML document parsing and data object mapping. It transforms YAML streams into low-level representations or high-level object models for programmatic analysis and converts structured data objects back into valid YAML strings. The library covers general data serialization and configuration file management, allowing application data structures to be m

    C#dotnetparserserialization
    View on GitHub↗2,807
  • nodeca/js-yamlnodeca avatar

    nodeca/js-yaml

    6,591View on GitHub↗

    js-yaml is a JavaScript library providing a programmatic interface for parsing and dumping YAML data. It functions as a parser and serializer that converts YAML strings into JavaScript objects and transforms JavaScript objects back into YAML format. The library includes a command-line interface for parsing or dumping YAML data via direct input or data pipes. It also features an abstract syntax tree transformer to modify the structure of data during serialization. The project provides capabilities for multi-document processing and the definition of custom schemas and tags to handle specialize

    JavaScript
    View on GitHub↗6,591
  • jeremyfa/yaml.jsjeremyfa avatar

    jeremyfa/yaml.js

    886View on GitHub↗

    This library provides a parser and encoder for YAML 1.2 data structures, enabling the transformation of human-readable YAML strings into native JavaScript objects and arrays. It is designed to function as a cross-platform utility, ensuring consistent data processing across both server-side runtimes and client-side browser environments. Beyond its core library functionality, the project includes a command-line interface for automating data conversion tasks. This utility supports bidirectional transformation between YAML and JSON formats, allowing for the programmatic manipulation and exchange

    CoffeeScriptjavascriptjsonjson2yaml
    View on GitHub↗886
  • burntsushi/tomlBurntSushi avatar

    BurntSushi/toml

    4,904View on GitHub↗

    This is a TOML parser and serializer for the Go language. It serves as a data serialization library and configuration file mapper that encodes and decodes data between Go structures and the TOML configuration format. The library provides interfaces for custom type marshaling, allowing for specialized logic when parsing or serializing specific data types. It transforms structured objects into deterministic TOML documents for storage or transmission. The project covers a broad range of data processing capabilities, including structured value encoding, TOML data generation, and metadata inspect

    Go
    View on GitHub↗4,904
See all 30 alternatives to Yaml→

Frequently asked questions

What does go-yaml/yaml do?

This library is a YAML encoder and decoder for native Go data structures. It provides the tools necessary to transform internal data into YAML formatted text and convert YAML input streams back into structured data.

What are the main features of go-yaml/yaml?

The main features of go-yaml/yaml are: YAML Processing, YAML Parsers, Resource-Constrained Parsing, YAML Configuration Files, Data Serialization Formats, Interface-Based Marshaling, YAML-to-Object Mapping, Deterministic Serialization.

What are some open-source alternatives to go-yaml/yaml?

Open-source alternatives to go-yaml/yaml include: aaubry/yamldotnet — YamlDotNet is a YAML serialization library and data mapping tool for .NET. It functions as a parser and generator that… nodeca/js-yaml — js-yaml is a JavaScript library providing a programmatic interface for parsing and dumping YAML data. It functions as… jeremyfa/yaml.js — This library provides a parser and encoder for YAML 1.2 data structures, enabling the transformation of human-readable… burntsushi/toml — This is a TOML parser and serializer for the Go language. It serves as a data serialization library and configuration… goccy/go-yaml — This library is a Go-based utility for encoding and decoding YAML data into native language structures. It facilitates… toml-lang/toml — TOML is a configuration file format designed for human readability and unambiguous mapping to hash tables. It serves…