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

square/wire

0
View on GitHub↗
4,419 stars·616 forks·Kotlin·Apache-2.0·10 viewssquare.github.io/wire↗

Wire

Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems.

The project provides specialized tools for protocol buffer schema management, including the ability to prune unused types and filter fields by version to reduce final binary sizes. It also handles namespace management and allows for the creation of custom schema handlers to execute user-defined logic during the compilation phase.

The framework covers a broad range of capabilities including the generation of service interfaces for synchronous and asynchronous remote procedure calls, the mapping of schema types to native language primitives, and the serialization of messages to JSON. It also includes support for generating parcelable messages and mock clients for testing.

Features

  • Schema-Based Code Generators - Transforms protocol buffer definitions into type-safe native source code for multiple target languages.
  • Cross-Platform Language Bindings Generators - Transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java.
  • gRPC Service Generators - Automatically generates gRPC service code from protocol definitions during the build process.
  • Mobile gRPC Clients - Generates type-safe gRPC network code for mobile platforms to communicate with backend servers.
  • Remote Procedure Call Frameworks - Implements a gRPC framework to execute remote procedure calls between distributed systems.
  • Type-Safe Remote Calls - Implements gRPC service interfaces for type-safe, automatic serialization between distributed systems.
  • gRPC Service Interfaces - Generates typed service interfaces for gRPC to handle synchronous and asynchronous remote procedure calls.
  • Native Type Mappings - Converts standardized schema types into native language primitives to ensure consistent data representation across platforms.
  • Java Protobuf Generators - Produces type-safe Java code from Protobuf schemas to ensure consistent data exchange between services.
  • Cross-Platform State Serialization - Ensures data is interpreted identically across different programming languages and platforms using protocol buffers.
  • Type-Safe Code Generators - Transforms schema files into type-safe native source code for messages and services to eliminate serialization errors.
  • Protobuf Code Generators - Generates language-specific source code directly from protocol buffer schema definitions.
  • Protocol Buffer Implementations - Provides a full implementation of the Protocol Buffers serialization format and encoding/decoding logic.
  • Multi-Language - Supports service development across multiple languages using a shared RPC protocol and type-safe interfaces.
  • Typed Language Bindings - Generates type-safe native language bindings that map schema definitions to specific programming language interfaces.
  • Schema-to-Native Type Mappings - Provides mapping of protocol buffer schema types to native language primitives like timestamps or nullable types.
  • Protobuf Schema Lifecycle Management - Manages protobuf schemas by pruning unused types, managing namespaces, and filtering fields by version.
  • Custom Schema Handlers - Allows the execution of user-defined logic during compilation for specialized code generation, validation, or logging.
  • Schema Element Pruning - Removes unwanted types and fields from generated code via exclusion lists or reachability analysis to reduce binary size.
  • Schema Namespace Management - Uses manifest configuration files to resolve module dependencies and organize imports across multiple schema files.
  • Protobuf Schema Management - Provides tools for organizing and pruning protocol buffer definitions to manage dependencies and reduce binary size.
  • Version-Based Filtering - Filters out obsolete fields from generated sources based on version ranges to maintain backward compatibility.
  • Module Namespaces - Manages hierarchical naming systems for Swift modules to organize code and prevent identifier collisions.
  • Dependency Pruning - Implements reachability analysis to prune unused types and fields from schemas to reduce the final binary size.
  • Compiler Plugins - Provides a plugin architecture for the Protocol Buffers compiler to automate the generation of custom data structures.
  • Schema Pruning - Filters schemas to a specific subset of root types and dependencies to reduce total source code size.
  • Schema Version Filtering - Removes obsolete schema fields based on defined version ranges to maintain backward compatibility in generated sources.
  • Data Structures - Lightweight protocol buffer implementation for Android and Java.
  • Data Structures and Memory - Lightweight protocol buffers for Android and Java.
  • Data Structures - Lightweight protocol buffer implementation.
  • ProGuard Configurations - Provides protocol buffer configuration rules.

Star history

Star history chart for square/wireStar history chart for square/wire

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 Wire

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

    alipay/fury

    4,412View on GitHub↗

    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

    Java
    View on GitHub↗4,412
  • grpc/grpc-rustgrpc avatar

    grpc/grpc-rust

    12,338View on GitHub↗

    grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr

    Rustasyncgrpcproto
    View on GitHub↗12,338
  • golang/protobufgolang avatar

    golang/protobuf

    10,074View on GitHub↗

    This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native data structures into a compact binary format for efficient network transmission and storage. It functions as a language bindings generator, utilizing a compiler plugin to create Go source code from platform-neutral protocol buffer definitions. The implementation includes a JSON data mapper that transforms structured binary messages into JSON format to facilitate compatibility with web services and external APIs. It also enables cross-language data exchange by using a common s

    Go
    View on GitHub↗10,074
  • 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
Compare all 30 related projects→

Frequently asked questions

What does square/wire do?

Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems.

What are the main features of square/wire?

The main features of square/wire are: Schema-Based Code Generators, Cross-Platform Language Bindings Generators, gRPC Service Generators, Mobile gRPC Clients, Remote Procedure Call Frameworks, Type-Safe Remote Calls, gRPC Service Interfaces, Native Type Mappings.

Which projects share features with square/wire?

Projects with overlapping indexed features include: alipay/fury — Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to… grpc/grpc-rust — grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and… golang/protobuf — This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native… apache/fory — Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs… real-logic/simple-binary-encoding — Simple Binary Encoding (SBE) - High Performance Message Codec. anyproto/anytype-ts — anytype-ts is a TypeScript client library and offline-first knowledge base client designed for managing structured…