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
alipay avatar

alipay/fury

0
View on GitHub↗
4,412 stars·424 forks·Java·Apache-2.0·31 viewsfory.apache.org↗

Fury

Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages.

The project distinguishes itself through a zero-copy binary reader that allows specific fields to be accessed without deserializing the entire object, as well as an object graph serializer that preserves circular references and referential integrity. It also features a data converter that transforms row-based binary data into columnar Apache Arrow formats for analytical workloads.

The framework covers broad capability areas including metadata-driven schema evolution for forward and backward compatibility, a build-time AOT compilation process to eliminate runtime reflection, and secure deserialization via whitelist-based type validation. It further provides integration for high-performance remote procedure calls through gRPC.

Features

  • Binary Deserialization - Reconstructs original typed objects from binary payloads using a shared schema to ensure type safety.
  • Language-Neutral Data Serialization - Implements a portable binary wire format for encoding data structures independently of specific languages or architectures.
  • Cross-Language Serialization Frameworks - Implements a high-performance multi-language binary serialization framework for encoding domain objects and complex graphs.
  • Interface Definition Languages - Provides an IDL compiler to generate type-safe native models and serialization boilerplate across multiple languages.
  • Cross-Language Data Model Definitions - Uses a schema IDL to generate native data structures across multiple languages to ensure a consistent data contract.
  • Schema Definition - Uses a language-neutral schema format to specify structured data types, unions, and services.
  • Schema-to-Native Type Mappings - Maps native language types to stable, namespaced identifiers for consistent data exchange between services.
  • Data Schema Definitions - Provides declarative systems for defining data structures that ensure consistent layout across different programming languages.
  • Graph Serializers - Provides a serialization engine that preserves circular references and referential integrity within complex object hierarchies.
  • Language-Specific Type Definitions - Generates native programming language types based on schema definitions to ensure consistent field mappings.
  • Schema Evolution - Maintains forward and backward compatibility by evolving data structures without requiring destructive migrations.
  • Analytics-Optimized Row Formats - Uses a row-oriented binary encoding optimized for high-throughput processing and zero-copy data access.
  • Random Field Accesses - Allows reading specific fields from binary records without performing full object deserialization.
  • IDL Model Generation - Produces compiler output for data models and schema modules based on an Interface Definition Language.
  • Zero-Copy Data Access - Implements zero-copy mechanisms to access serialized data structures directly from memory without full deserialization.
  • Zero-Copy Deserialization - Ships a zero-copy binary reader that allows accessing specific fields without deserializing the entire object.
  • Native AOT Compilation - Generates optimized serializer code at build time to eliminate runtime reflection and reduce memory usage.
  • Serialization Code Generators - Generates static serialization logic at build time to eliminate runtime reflection and improve performance.
  • Cross-Language Data Mapping - Provides bidirectional transformation of complex data structures between different programming languages.
  • Cross-Platform Language Bindings Generators - Transforms schema definitions into type-safe native language bindings for multiple target platforms.
  • Object Serialization - Encodes complex object graphs with circular references and polymorphic types while maintaining structural integrity.
  • IDL Compilers - Translates interface definition language files into native source code for multiple target languages.
  • Compact Binary Object Encoding - Converts domain objects into a compact binary format using variable-length encoding to reduce payload size.
  • Reference Tracking - Tracks object identities during serialization to preserve shared references and resolve circular dependencies.
  • Polymorphic Type Mapping - Implements automatic type dispatching to preserve polymorphic object types across the binary wire format.
  • Serialization - Preserves inheritance hierarchies by including base class fields within derived types during binary serialization.
  • Schema Definition Languages - Includes a compiler that translates schema definitions into native types and serialization boilerplate across multiple languages.
  • Multi-Language Model Generators - Produces type-safe data models and serializers for a variety of target programming languages from shared schemas.
  • Primitive Array Encoding - Writes dense numeric or boolean data as raw binary buffers to achieve high performance throughput.
  • Apache Arrow Processing - Converts serialized row-based data into Apache Arrow columnar formats to enable high-performance analytical workloads.
  • Binary Encoding Specifications - Assigns specific binary formats to scalar types using language-specific annotations and metadata.
  • Language-Specific Optimizations - Provides high-performance serialization alternatives for complex native types, including support for lambdas.
  • Row-to-Columnar Conversions - Transforms row-based binary data into Apache Arrow RecordBatch formats for high-performance analytical workloads.
  • Collection Serialization - Encodes grouped data structures like lists and maps using size markers, type metadata, and reference tracking.
  • Deep Object Manipulations - Provides utilities for performing recursive deep clones of complex object graphs while preserving referential integrity.
  • Zero-Copy - Utilizes zero-copy buffer paths for large binary payloads to eliminate unnecessary memory copying.
  • Field-Level Metadata Annotations - Attaches metadata to fields using annotations to provide encoding hints and reference tracking.
  • gRPC Service Generators - Automatically generates gRPC service code and boilerplate from protocol definitions during the build process.
  • Metadata Deduplication - Deduplicates field names, type names, and namespaces within a session to reduce binary payload size.
  • gRPC Implementations - Provides a high-performance gRPC protocol implementation for remote procedure calls.
  • Out-of-Band Buffer Referencing - Optimizes binary data transport by referencing external buffers instead of inlining large payloads.
  • Serializer Registrations - Allows explicit mapping of classes to specialized serializer implementations for optimized or non-standard encoding.
  • Class Registration Optimizations - Optimizes binary payload size by mapping classes to numeric identifiers with fallback options.
  • Whitelisted Deserialization - Prevents security exploits by restricting object instantiation during deserialization to a registry of trusted types.
  • Message Type Registrations - Assigns unique identifiers to user-defined structures to enable precise identification during deserialization.
  • Deserialization Security - Controls class instantiation during decoding through explicit registration and configurable security policies.
  • Serialization Performance Tuning - Increases throughput using JIT code generation, SIMD acceleration, and variable-length encoding.
  • Singleton Identity Preservation - Ensures that singleton objects maintain referential equality after being deserialized from a binary format.
  • Dynamic Type Serialization - Processes generic object payloads without requiring a predefined static type at compile time.
  • Runtime-Specific Serialization Paths - Uses native serialization paths tailored for specific language runtimes to achieve faster processing.
  • Stream Metadata Deduplication - Reduces redundant type information by writing class metadata once per stream and using local index references.
  • Unknown Type Preservation - Preserves data for classes that do not exist in the local runtime to allow lossless round-tripping of payloads.
  • Serialization - Blazing fast JIT-powered zero-copy serialization framework.

Star history

Star history chart for alipay/furyStar history chart for alipay/fury

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. 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

Projects sharing features with Fury

These projects share indexed features with Fury. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • apache/foryapache avatar

    apache/fory

    4,234View on GitHub↗

    Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs into a compact binary format for high-performance data exchange. It includes an IDL-based schema compiler to transform interface definition language files into type-safe native data models and a schema evolution manager to maintain forward and backward compatibility. The project features a zero-copy data access layer that allows reading specific fields from binary rows without deserializing the entire object. It supports dual-mode serialization, enabling a toggle between a por

    Javacompressioncppcross-language
    View on GitHub↗4,234
  • esotericsoftware/kryoEsotericSoftware avatar

    EsotericSoftware/kryo

    6,529View on GitHub↗

    Kryo is a Java binary serialization framework and object cloning library used to convert Java objects into a compact binary format and restore them from bytes. It provides a system for creating deep or shallow copies of complex object graphs without requiring binary conversion. The project utilizes variable-length integer encoding and integer-ID class registration to reduce the size of serialized data. It handles complex object graphs through circular reference tracking to prevent data duplication and infinite loops. To maintain long-term data viability, it includes schema evolution managemen

    HTML
    View on GitHub↗6,529
  • protocolbuffers/protobufprotocolbuffers avatar

    protocolbuffers/protobuf

    71,359View on GitHub↗

    Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d

    C++marshallingprotobufprotobuf-runtime
    View on GitHub↗71,359
  • neuecc/messagepack-csharpneuecc avatar

    neuecc/MessagePack-CSharp

    6,710View on GitHub↗

    MessagePack-CSharp is a high-performance binary serialization library for .NET applications that converts object graphs into the MessagePack format. It functions as a C# data serialization toolkit and a polymorphic binary encoder capable of handling abstract classes and interfaces using union keys to identify concrete derived types. The library provides a binary format transcoder to transform binary data into human-readable JSON for debugging. It supports ahead-of-time formatter generation to avoid runtime overhead and implements LZ4 binary compression to reduce the size of serialized data.

    C#
    View on GitHub↗6,710
Compare all 30 related projects→

Frequently asked questions

What does alipay/fury do?

Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages.

What are the main features of alipay/fury?

The main features of alipay/fury are: Binary Deserialization, Language-Neutral Data Serialization, Cross-Language Serialization Frameworks, Interface Definition Languages, Cross-Language Data Model Definitions, Schema Definition, Schema-to-Native Type Mappings, Data Schema Definitions.

Which projects share features with alipay/fury?

Projects with overlapping indexed features include: apache/fory — Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs… esotericsoftware/kryo — Kryo is a Java binary serialization framework and object cloning library used to convert Java objects into a compact… protocolbuffers/protobuf — Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a… neuecc/messagepack-csharp — MessagePack-CSharp is a high-performance binary serialization library for .NET applications that converts object… apache/thrift — Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface… cysharp/memorypack — MemoryPack is a high-performance binary serialization library for C# and Unity. It provides a zero-allocation data…