# Package net.corda.core.serialization

- Interface Summary
  Interface | Description
  --- | ---
  ClassWhitelist |
  CordaSerializable | This annotation is a marker to indicate that a class is permitted and intended to be serialized as part of Node messaging.
  DeserializeAsKotlinObjectDef | Marker interface for kotlin object definitions so that they are deserialized as the singleton instance.
  MutableClassWhitelist |
  SerializationCustomization |
  SerializationToken | This represents a token in the serialized stream for an instance of a type that implements `interface SerializeAsToken`.
  SerializeAsToken | This interface should be implemented by classes that want to substitute a token representation of themselves if they are serialized because they have a lot of internal state that does not serialize (well).

- Class Summary
  Class | Description
  --- | ---
  AllWhitelist |
  BuiltInExceptionsWhitelist |
  ByteArraysKt |
  CompositeKeyLeafSerializer | For serialising composite keys
  CompositeKeyNodeSerializer |
  CordaClassResolver |
  CordaClassResolverKt |
  CordaKryo | We need to disable whitelist checking during calls from our Kryo code to register a serializer, since it checks for existing registrations and then will enter our CordaClassResolver.getRegistration method.
  DefaultKryoCustomizer |
  Ed25519PrivateKeySerializer | For serialising an ed25519 private key
  Ed25519PublicKeySerializer | For serialising an ed25519 public key
  EmptyWhitelist |
  GlobalTransientClassWhiteList |
  ImmutableClassSerializer<T> | Serializes properties and deserializes by using the constructor. This assumes that all backed properties are set via the constructor and the class is immutable.
  InputStreamSerializer |
  KotlinObjectSerializer | Serializer to deserialize kotlin object definitions marked with `interface DeserializeAsKotlinObjectDef`.
  KryoKt |
  KryoSerializationCustomization |
  LoggingWhitelist | This class is not currently used, but can be installed to log a large number of missing entries from the whitelist and was used to track down the initial set.
  NoReferencesSerializer<T> |
  OpaqueBytes | A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect. In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such functionality to Java, but it won't arrive for a few years yet!
  OrderedSerializer |
  ReferencesAwareJavaSerializer | Improvement to the builtin JavaSerializer by honouring the Kryo.getReferences setting.
  SerializeAsTokenContext | A context for mapping SerializationTokens to/from SerializeAsTokens.
  SerializeAsTokenSerializer<T extends SerializeAsToken> | A Kryo serializer for `interface SerializeAsToken` implementations.
  SerializedBytes<T> | A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize to get the original object back.
  SerializedBytesSerializer | A serialiser that avoids writing the wrapper class to the byte stream, thus ensuring `class SerializedBytes` is a pure type safety hack.
  SingletonSerializationToken | A class representing a `interface SerializationToken` for some object that is not serializable but can be looked up (when deserialized) via just the class name.
  SingletonSerializeAsToken | A base class for implementing large objects / components / services that need to serialize themselves to a string token to indicate which instance the token is a serialized form of.
  WireTransactionSerializer | A serialisation engine that knows how to deserialise code inside a sandbox

- Exception Summary
  Exception | Description
  --- | ---
  MissingAttachmentsException | Thrown during deserialisation to indicate that an attachment needed to construct the `class WireTransaction` is not found