# GH_IO.Serialization namespace

Assembly: [GH_IO](https://developer.rhino3d.com/api/gh1/assembly/gh-io.md)

## Interfaces

- [GH_IBinarySupport](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-ibinarysupport.md): Interface which declares all methods required for objects that can be (de)serialized to and from a binary archive.
- [GH_IChunk](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-ichunk.md): Base interface for all Archive Chunks.
- [GH_IReader](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-ireader.md): Provides access to a subset of GH_Chunk methods used for reading archives.
- [GH_IWriter](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-iwriter.md): Provides access to a subset of GH_Chunk methods used for writing archives.
- [GH_IXmlSupport](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-ixmlsupport.md): Interface which declares all methods required for objects that can be (de)serialized to and from an Xml archive.

## Classes

- [EncodedStringWriter](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.encodedstringwriter.md): This class is needed to override the UTF-16 encoding property of the default DotNET StringWriter.
- [GH_Archive](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-archive.md): This is the base archive class which takes care of all (de)serialization and messaging.
- [GH_Chunk](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-chunk.md): Full implementation of GH_IChunk, GH_IReader, GH_IWriter, GH_IBinarySupport and GH_IXmlSupport. Instances of this class are usually disguised as one of the interfaces it implements.
- [GH_Chunk.ChunkKeyedCollection](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-chunk.chunkkeyedcollection.md): Represents a collection of chunks with associated IDs
- [GH_Compression](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-compression.md): Provides static methods for compression of byte-arrays.
- [GH_LooseChunk](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-loosechunk.md): A utility class for creating partial archives.
- [GH_Message](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-message.md): Represents an archive log message. Messages are collected during read/write operations.

## Enums

- [GH_Message_Type](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.gh-message-type.md): Message type flag.

## Structs

- [ID](https://developer.rhino3d.com/api/gh1/type/gh-io.serialization.id.md): An ID is used to uniquely identify a specific item.
