Skip to content

MIT LicenseTypeScriptnpm

Advanced serialization and deserialization services for the ziegel platform. Provides JSON, XML, binary serialization with custom formatters and type preservation for enterprise applications.

Serialization: Enterprise serialization with multiple formats, type preservation, and custom serializers.

🚀 Overview

@breadstone/ziegel-platform-serialization provides:

  • Multiple Formats: JSON, XML, Binary, and custom serialization formats
  • Type Preservation: Maintain TypeScript types during serialization/deserialization
  • Custom Serializers: Extensible serializer system for complex objects
  • Schema Validation: Built-in validation during deserialization
  • Performance Optimization: Efficient serialization with streaming support
  • Decorator Support: Attribute-based serialization configuration

📦 Installation

bash
npm install @breadstone/ziegel-platform-serialization
# or
yarn add @breadstone/ziegel-platform-serialization

🧩 Features & Usage Examples

JSON Serialization

typescript
import { JsonSerializer, Serializable, SerializeProperty } from '@breadstone/ziegel-platform-serialization';

@Serializable()
class User {
  @SerializeProperty({ name: 'user_id' })
  id: number;

  @SerializeProperty()
  name: string;

  @SerializeProperty({ ignore: true })
  password: string;
}

const serializer = new JsonSerializer();
const json = serializer.serialize(user);
const deserializedUser = serializer.deserialize<User>(json, User);

XML Serialization

typescript
import { XmlSerializer, XmlElement, XmlAttribute } from '@breadstone/ziegel-platform-serialization';

@XmlElement('Person')
class Person {
  @XmlAttribute()
  id: number;

  @XmlElement()
  name: string;

  @XmlElement('contact-info')
  email: string;
}

const xmlSerializer = new XmlSerializer();
const xml = xmlSerializer.serialize(person);

Custom Serializers

typescript
import { SerializerBase, ISerializationContext } from '@breadstone/ziegel-platform-serialization';

class DateSerializer extends SerializerBase<Date> {
  serialize(value: Date, context: ISerializationContext): string {
    return value.toISOString();
  }

  deserialize(value: string, context: ISerializationContext): Date {
    return new Date(value);
  }
}

Binary Serialization

typescript
import { BinarySerializer } from '@breadstone/ziegel-platform-serialization';

const binarySerializer = new BinarySerializer();
const buffer = binarySerializer.serialize(complexObject);
const restored = binarySerializer.deserialize<ComplexObject>(buffer, ComplexObject);

📚 Package import points

typescript
import {
  // JSON Serialization
  JsonSerializer,
  Serializable,
  SerializeProperty,

  // XML Serialization
  XmlSerializer,
  XmlElement,
  XmlAttribute,

  // Binary Serialization
  BinarySerializer,

  // Custom Serializers
  SerializerBase,
  ISerializationContext,

  // Configuration
  SerializationOptions,
} from '@breadstone/ziegel-platform-serialization';

📚 API Documentation

  • @breadstone/ziegel-platform: Core platform services
  • @breadstone/ziegel-core: Foundation utilities and type definitions

License

MIT

Issues

Please report bugs and feature requests in the Issue Tracker


Part of the ziegel Enterprise TypeScript Framework

Released under the MIT License.