9 repositorios
Tools for generating client stubs and server skeletons from IDL files.
Distinguishing note: Focuses on the automation of boilerplate code.
Explore 9 awesome GitHub repositories matching development tools & productivity · Interface Definition Code Generation. Refine with filters or upvote what's useful.
gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl
Automatically generates language-specific client stubs and server skeletons from interface definition files.
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
Automatically generates client stubs and server skeletons from protobuf interface definition files.
F Prime es un framework basado en componentes diseñado para el desarrollo y despliegue de software embebido y de vuelo espacial. Proporciona una arquitectura modular que desacopla la lógica del software de las interfaces de comunicación, permitiendo a los desarrolladores definir estructuras de sistema mediante un lenguaje de modelado específico del dominio. Este enfoque basado en modelos permite la generación automática de código, asegurando la consistencia en topologías de sistemas complejos mientras mantiene estrictos contratos de interfaz entre los módulos de software. El framework se distingue por su sistema de compilación integrado y su suite de operaciones de datos en tierra. Automatiza todo el ciclo de vida del software embebido, desde la compilación cruzada y la gestión de dependencias hasta la generación de interfaces de telemetría y comandos. Al proporcionar un entorno unificado tanto para el software de vuelo a bordo como para la monitorización en tierra, facilita la integración, las pruebas y el mando y control de sistemas embebidos distribuidos en diversas plataformas de hardware. Más allá de su arquitectura central, el proyecto incluye herramientas integrales para la observabilidad del sistema, incluyendo visualización de telemetría en tiempo real, registro de eventos y trazado de diagnóstico. Soporta una amplia gama de escenarios de despliegue, desde entornos bare-metal hasta sistemas operativos en tiempo real, y proporciona mecanismos para la gestión de memoria, modelado de comportamiento basado en estados y ejecución de tareas asíncronas. El proyecto se mantiene como un repositorio en C++ con documentación extensa y soporte de sistema de compilación para el desarrollo multiplataforma.
Automates the generation of source code and interface definitions from architectural models to ensure system consistency.
This project is a centralized API specification registry and governance framework. It serves as a source of truth for structured API schemas, gRPC definitions, and data models used to maintain consistency across a large ecosystem of services. The system functions as a multi-language client generator, transforming standardized interface definitions into executable source code and language-specific libraries. This process ensures that client libraries and technical documentation remain synchronized by deriving them directly from the original interface definitions. The project also covers the m
Generates client stubs and server skeletons from IDL files using automated build plugins.
Hertz is a high-performance Go HTTP framework designed for building scalable microservices, RESTful APIs, and AI applications. It functions as a high-performance web server and a communication framework for microservices, utilizing non-blocking I/O and zero-copy memory management to handle high-concurrency traffic. The project distinguishes itself through a microservices communication toolkit that supports high-efficiency remote procedure calls via gRPC and Thrift protocols. It implements an asynchronous middleware engine based on an onion model, allowing for a pluggable request-response pipe
Generates server skeletons and client stubs from Thrift or Protobuf IDL files to ensure type safety.
SWIG is a tool that generates wrapper code to expose C and C++ libraries to a wide range of higher-level programming languages. It reads annotated C/C++ header files and produces language-specific bindings from a single interface definition, supporting languages such as Python, Java, Ruby, C#, Perl, and many others. The generated wrapper code is free from the project's GPL license, allowing users to distribute it under their own terms. The tool handles modern C++ features including templates, namespaces, smart pointers, and constructs up to C++20 through specialized parsing and code generatio
Generates language-specific bindings from a single annotated C/C++ interface definition.
Apache Dubbo Go es una implementación en lenguaje Go del framework Apache Dubbo, diseñada para construir microservicios de alto rendimiento. Sirve como un framework RPC multiplataforma y una capa de comunicación de microservicios que permite llamadas a procedimientos remotos entre servicios escritos en diferentes lenguajes de programación. El framework funciona como un conjunto de herramientas de gobernanza de servicios y un proxy de service mesh distribuido, permitiendo que los planos de datos se conecten con planos de control externos en modos con o sin proxy. Proporciona específicamente una capa de compatibilidad para facilitar la comunicación entre servicios basados en Go y Java a través de definiciones agnósticas al lenguaje y codificación de datos estandarizada. El sistema cubre una amplia gama de capacidades distribuidas, incluyendo descubrimiento dinámico de servicios, balanceo de carga basado en estrategias y gestión de tráfico mediante disyuntores (circuit breakers) y limitación de tasa (rate limiting). Incorpora observabilidad a través de rastreo de solicitudes distribuidas y métricas de rendimiento, al tiempo que garantiza la seguridad con cifrado de capa de transporte y control de acceso basado en identidad. La productividad del desarrollador se apoya mediante una interfaz de línea de comandos para el arranque de aplicaciones y la generación automatizada de stubs RPC a partir de definiciones de interfaz.
Produces client and server stubs from shared interface definitions to automate the implementation of service contracts.
KotlinPoet es una API basada en Java para crear y formatear archivos fuente de Kotlin mediante programación. Funciona como un generador de código fuente y un mapeador de sistemas de tipos, proporcionando un framework para construir estructuras de código Kotlin a través de un modelo de elementos de lenguaje con seguridad de tipos, automatizando así la creación de código repetitivo (boilerplate). El proyecto utiliza un patrón de diseño fluent-builder para construir elementos de lenguaje de forma incremental y mantiene un modelo de objetos interno que separa la estructura lógica del formato de texto final. Gestiona las complejidades de la emisión de código mediante un formato basado en sangrías y el escape de nombres consciente de palabras clave para garantizar una salida válida. La librería cubre la generación de una amplia gama de declaraciones, incluyendo clases, interfaces, funciones, propiedades y companion objects. Incluye utilidades para gestionar tipos parametrizados complejos, clases enum y alias de tipos, así como herramientas para incrustar literales y construir bloques de control de flujo. La gestión automática de importaciones y la referencia de declaraciones están integradas para resolver miembros mediante nombres cualificados. KotlinPoet ofrece capacidades para transformar datos de reflexión y símbolos en representaciones de código fuente, y permite exportar especificaciones de archivos para su uso en herramientas de procesamiento de anotaciones.
Supports the programmatic creation of interface declarations to define common APIs.
tarpc is a remote procedure call framework for Rust that generates server traits and client stubs for network communication. It provides an asynchronous service interface that allows remote functions to be called as if they were local asynchronous tasks. The framework utilizes a serialized transport layer to move request and response data via TCP sockets, Unix domain sockets, or in-process channels. It includes a request lifecycle interceptor for injecting custom logic to handle authorization, throttling, and load balancing, as well as a distributed request telemetry system that attaches dead
Generates client stubs and server skeletons from service specifications to reduce manual implementation.