Giter Site home page Giter Site logo

yamldotnet's Introduction

YamlDotNet

YamlDotNet is a .NET library for YAML. YamlDotNet provides low level parsing and emitting of YAML as well as a high level object model similar to XmlDocument. A serialization library is also included that allows to read and write objects from and to YAML streams.

What is YAML?

YAML, which stands for "YAML Ain't Markup Language", is described as "a human friendly data serialization standard for all programming languages". Like XML, it allows to represent about any kind of data in a portable, platform-independent format. Unlike XML, it is "human friendly", which means that it is easy for a human to read or produce a valid YAML document.

The YamlDotNet library

The library has now been successfully used in multiple projects and is considered fairly stable.

More information

More information can be found in the official page of the project.

Installing

Just install the YamlDotNet NuGet package:

PM> Install-Package YamlDotNet

If you do not want to use NuGet, you can download binaries here.

YamlDotNet is also available on the Unity Asset Store.

Contributing

Please read CONTRIBUTING.md for guidelines.

Changelog

Version 3.6.1

Bug fixes:

  • Bug in the GetPublicMethods implementation for portable.

Version 3.6.0

New features:

  • Ability to opt out of anchor assignment during YamlStream.Save().
  • Allow the style of scalar properties to be specified through the YamlMember attribute.
  • Add solution configuration to target "Unity 3.5 .net Subset Base Class Libraries".

Bug fixes:

  • Do not compare nodes by value while assigning anchors. It is the responsibility of the user to use the same reference if they want an alias.
  • Fixed #121: Finding properties in parent interfaces

Version 3.5.1

Fix bug:

  • Scalars returned by the scanner do not have their Start and End properties set.

Version 3.5.0

  • Add native support of System.Guid serialization.
  • Add properties to YamlMemberAttribute:
    • Order: specifies the order of the members when they are serialized.
    • Alias: instructs the deserializer to use a different field name for serialization.
  • The YamlAliasAttribute is now obsolete. New code should use YamlMemberAttribute instead.
  • Throw proper exceptions, with correct marks, when deserialization of a node fails.

Version 3.4.0

Changes and fixes on the Scanner to make it more usable:

  • Report the location of comments correctly, when the scanner is created with "skipComments = false"
  • In case of syntax error, do not report an empty range and skip to the next token.
  • Make the scanner and related types serializable, so that the state of the scanner can be captured and then restored later (assuming that the TextReader is also serializable).

Version 3.3.1

This release adds a signed package and portable versions of the library.

Version 3.3.0

  • Make types in YamlDotNet.RepresentationModel serializable.

Version 3.2.1

  • Fix AnchorNotFoundException when another exception occurs during deserialization.

Version 3.2.0

This release adds merge key support: http://yaml.org/type/merge.html

Example from BackreferencesAreMergedWithMappings unit test:

var reader = new EventReader(new MergingParser(new Parser(stream)));
var result = Deserializer.Deserialize<Dictionary<string, Dictionary<string, string>>>(parser);

Version 3.1.1

This is a bugfix release that fixes issue #90.

Version 3.1.0

  • Add a parameter to the deserializer to ignore unmapped properties in YAML.

Version 3.0.0

  • Fix issue #26: Use the actual type of the objects instead of the statically detected one.
  • Merged the Core, Converters and RepresentationModel assemblies. The NuGet packages YamlDotNet.Core and YamlDotNet.RepresentationModel are now a single package, named YamlDotNet.
  • Removed YamlDotNet.Configuration and YamlDotNet.Converters.
  • Line numbers in error messages now start at one.
  • TypeConverter is now used to cast list items.
  • Various code improvements.
  • More and better unit tests.

Version 2.2.0

TODO

Version 2.1.0

TODO

Version 2.0.0

  • YamlSerializer has been replaced by the Deserializer class. It offer the same functionality of YamlSerializer but is easier to maintain and extend.

    • Breaking change: DeserializationOverrides is no longer supported. If you need this, please file a bug and we will analyze it.
    • Breaking change: IDeserializationContext is no longer supported. If you need this, please file a bug and we will analyze it.
    • Tag mappings are registered directly on the Deserializer using RegisterTagMapping()
    • ObjectFactory is specified in the constructor, if required.
  • Bug fixes to the Serializer:

    • Fix bug when serializing lists with nulls inside. e9019d5f224f266e88d9882502f83f0c6865ec24
  • Adds a YAML editor add-in for Visual Studio 2012. Available on the Visual Studio Gallery.

yamldotnet's People

Contributors

aaubry avatar steinbitglis avatar mattmiller85 avatar atruskie avatar daniel15 avatar leon-m avatar jeffman avatar johshoff avatar sourcenouveau avatar roji avatar matthewrwilton avatar raleksandar avatar apanda avatar fantasticjamieburns avatar kevinhoward avatar nickbabcock avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.