23 repositorios
Software patterns and interface layers for decoupling third-party library integrations from core application logic.
Distinguishing note: Focuses on architectural abstraction layers for external dependencies rather than specific data storage or database drivers.
Explore 23 awesome GitHub repositories matching software engineering & architecture · Integration Adapters. Refine with filters or upvote what's useful.
OpenBBTerminal is a Python financial data platform and command line interface designed for aggregating and analyzing market data from diverse APIs. It serves as a quantitative analysis tool for processing stock, crypto, and derivative datasets to identify market trends and build investment strategies. The project utilizes a pluggable financial API framework with an adapter-based architecture, allowing external financial data providers to be integrated as independent modules. This system standardizes information from public and proprietary sources into a unified layer to support cross-asset an
Implements an adapter-based architecture to standardize diverse external financial APIs into a common internal format.
This project is a comprehensive UI toolkit that provides a declarative, reactive framework for building modular web interfaces. It centers on a component-based architecture that maps application state to rendered elements, utilizing a twelve-point flexbox grid system and nested containers to manage complex layouts. The library ensures consistent behavior across large-scale applications by providing centralized configuration for component defaults, themes, and global design tokens. What distinguishes this framework is its deep integration of Material Design principles alongside a highly flexib
Implements swappable interface layers to decouple specialized third-party dependencies from the core application logic.
This project is a project management platform that serves as a centralized digital workspace for organizing team tasks and synchronizing development workflows. It functions as a development workflow orchestrator, providing a unified interface that connects disparate engineering tools to streamline team coordination and maintain visibility over ongoing technical projects. The platform distinguishes itself through a relational entity graph that stores data as a network of interconnected nodes and edges, enabling complex querying of relationships between tasks and repositories. It maintains cons
Translates diverse third-party API schemas into a unified internal format using a modular plugin architecture.
Enzyme is a JavaScript component testing utility and test suite used to verify the behavior and rendered output of user interface components. It provides tools for simulating user interactions, updating component properties, and asserting that the resulting interface state matches expected outcomes. The project utilizes a pluggable adapter system to connect different user interface frameworks, allowing for consistent testing patterns across various libraries and versions. This architecture enables the verification of components across multiple UI library versions and different test runners.
Provides an architectural abstraction layer to decouple testing commands from specific UI library implementations.
Easydict is a macOS dictionary and translator application that integrates system dictionaries, external translation services, and Large Language Models such as OpenAI and Gemini. It functions as an OCR text extractor and a text-to-speech reader, allowing users to look up words and translate text directly on the desktop. The application features a local OCR engine that captures screen areas to recognize and translate text that cannot be highlighted or copied. It utilizes a provider-agnostic translation pipeline and adapter-based service integration to standardize responses from various cloud a
Implements adapter patterns to standardize API responses from various translation service providers.
Karma is a JavaScript test runner designed for executing test suites across multiple real web browsers to ensure cross-browser compatibility. It functions as a browser-based execution system that launches browsers, captures console output, and provides a command line interface for running automated tests within continuous integration pipelines. The project utilizes a plugin architecture that allows for the integration of third-party launchers, reporters, and preprocessors. It employs an adapter-based framework to execute tests from various assertion libraries through a unified runner interfac
Implements a translation layer to execute tests from various assertion libraries through a unified runner interface.
This project is a framework for building back-office administrative interfaces and CRUD screens within Laravel applications. It provides a centralized PHP backend dashboard for managing application settings, server files, and internal system operations using configuration-based code. The system utilizes a configuration-driven UI generation model to create data interfaces for reading, updating, and deleting database records based on model definitions. It includes dedicated management interfaces for Redis key-value stores and a visual application monitoring dashboard for analyzing runtime excep
Uses adapter patterns to decouple the core application logic from external services like Redis and backup utilities.
Vue Storefront is a composable commerce platform designed to decouple the presentation layer from backend systems. By providing a headless frontend framework, it enables developers to build high-performance, mobile-first digital storefronts that remain independent of specific commerce engines, payment providers, or content management systems. The platform distinguishes itself through a modular architecture that uses standardized integration adapters to aggregate data from disparate services into a unified layer. This approach allows businesses to modernize legacy infrastructure or manage comp
Uses standardized connectors to link third-party services without requiring changes to core application code.
Pollyjs is an HTTP mocking and recording library designed to capture and replay network interactions to create deterministic tests. It functions as a request interceptor and stubbing framework that records real API responses into files, ensuring consistent test results across different environments without relying on live network servers. The tool utilizes pluggable network adapters to support various environments and employs a state-based mode switching system to toggle between recording, replaying, and stubbing behaviors. It uses pattern-based request matching and persistent interaction sto
Abstracts the underlying HTTP client to support different environments like browsers or Node.js.
WebDriverIO is a Node.js test automation framework used for automating functional tests across web browsers and mobile applications. It acts as a WebDriver protocol client that manages remote browser sessions and executes commands against WebDriver and Appium servers to perform end-to-end testing. The framework is distinguished by its ability to control both native and hybrid mobile applications and its support for running automated suites across local machines, remote grids, and cloud device providers. It includes specialized capabilities for coordinating multi-browser interactions and estab
Provides a translation layer that enables the automation logic to work seamlessly with test runners like Mocha, Jasmine, and Cucumber.
sktime is a machine learning framework designed for time series analysis. It provides a unified interface for performing time series forecasting, classification, and anomaly detection, integrating these capabilities into a standardized toolkit compatible with the scikit-learn API. The framework allows for the construction of complex analysis workflows through model pipelining and ensemble-based aggregation. It uses adapter-based integration to wrap external time series libraries, providing a single entry point for diverse algorithmic implementations. Its capabilities cover temporal data tran
Uses adapter patterns to wrap external time series libraries in common interfaces for decoupled integration.
This project is a Python speech recognition library that serves as a unified interface for converting spoken audio into text. It functions as a bridge between Python applications and a variety of speech-to-text engines, providing a consistent way to interact with both local and cloud-based recognition services. The library distinguishes itself as a multi-engine transcription tool, wrapping diverse online APIs and offline recognition backends into a standardized format. This allows for interchangeable recognition engines and supports multilingual audio transcription through various language pa
Provides architectural abstraction layers to decouple various speech recognition engine integrations from the core application logic.
Octokit.js is a GitHub API SDK used to interact with GitHub via REST and GraphQL interfaces. It serves as a client for executing typed queries and mutations, managing authenticated REST requests, and handling signed webhooks across Node.js, Deno, and browser environments. The library features a plugin-based request pipeline and an adapter-based HTTP client, allowing the interception of requests and responses across different runtimes. It employs strategy-based authentication to separate credential management from request logic, supporting static tokens, OAuth flows, and GitHub App installatio
Abstracts network requests using adapters to ensure compatibility across Node.js and browser runtimes.
Faraday is an HTTP client library for Ruby that sends requests and processes responses through a middleware pipeline with pluggable adapters. Its core identity is built around a middleware-pipeline architecture where HTTP requests and responses flow through a chain of components that can modify, log, or transform data before reaching the backend, combined with an adapter-based backend abstraction that delegates HTTP execution to interchangeable backends like Net::HTTP or Typhoeus. The library distinguishes itself through a parallel-execution engine that dispatches multiple HTTP requests concu
Making HTTP requests from Ruby applications with a consistent interface that works across multiple backend adapters.
Lidarr es un gestor de automatización de librerías de música y controlador de clientes que monitorea a los artistas en busca de nuevos lanzamientos y automatiza la adquisición de música a través de BitTorrent y Usenet. Sirve como un organizador de metadatos e integrador, conectando clientes de descarga con servidores de medios para mantener una colección de música digital completa y actualizada. El sistema se diferencia a través del mantenimiento automatizado de la librería, como el escaneo en busca de pistas faltantes para llenar vacíos y el monitoreo de versiones de mayor calidad de archivos existentes para realizar actualizaciones de calidad automáticas. Utiliza patrones de nombres configurables para renombrar archivos de audio y organizar carpetas, asegurando una estructura de sistema de archivos local consistente. Las capacidades amplias incluyen la gestión automatizada de descargas, la búsqueda manual de lanzamientos y la capacidad de manejar descargas fallidas buscando lanzamientos alternativos. El software también sincroniza las actualizaciones de la librería y los cambios de metadatos con reproductores y servidores de medios.
Implements a standardized adapter pattern to support a wide range of BitTorrent and Usenet clients.
routing-controllers es un router de API declarativo y controlador de framework web para TypeScript. Proporciona un sistema para definir rutas HTTP y lógica de manejo de peticiones utilizando decoradores basados en clases y metadatos para organizar los endpoints de la API en una arquitectura estructurada. El proyecto utiliza una integración de servidor basada en adaptadores para desacoplar la lógica de enrutamiento del framework web subyacente, proporcionando integraciones específicas para Express y Koa. Cuenta con un sistema de transformación de tipos basado en reflexión que valida y transforma los parámetros de petición entrantes en instancias de clases tipadas. La superficie de capacidades cubre un pipeline completo de petición-respuesta, incluyendo la ejecución de middleware, interceptación de respuestas y gestión global de errores. Soporta utilidades de enrutamiento avanzadas como prefijado global de rutas, descubrimiento de componentes basado en el sistema de archivos e integración de inyección de dependencias. La funcionalidad adicional incluye control de acceso basado en roles, inyección de usuarios autenticados y manejadores especializados para subidas de archivos y streaming de respuestas.
Decouples routing logic from underlying web frameworks using adapters for Express and Koa.
Typhoeus is a Ruby wrapper for libcurl that functions as a session-based HTTP client. It provides an interface for making both synchronous and asynchronous network requests. The project acts as a parallel request manager, using a managed queue to execute multiple network requests concurrently. It further distinguishes itself as a mocking tool for stubbing requests with predefined responses and as a caching layer that stores responses to avoid redundant network calls. The library covers a broad range of capabilities including session cookie management, response body streaming for large files,
Provides a backend adapter to connect the Faraday HTTP library with the underlying libcurl engine.
Geocoder es una biblioteca de PHP para convertir direcciones en coordenadas geográficas y viceversa utilizando varios servicios de terceros. Funciona como un wrapper de geocodificación multiproveedor y un motor de geocodificación inversa, proporcionando una capa de abstracción para gestionar múltiples API de geocodificación. El proyecto permite cambiar entre proveedores o encadenar peticiones para failover, asegurando una alta disponibilidad. También sirve como un resolvedor de ubicación GeoIP, traduciendo direcciones IP en coordenadas geográficas y detalles de ubicación a través de servicios remotos o bases de datos binarias locales. La biblioteca incluye capacidades para exportar objetos de ubicación y dirección a formatos geográficos estandarizados. Proporciona utilidades para el formato personalizado de cadenas de direcciones, consultas conscientes de la configuración regional y caché de resultados para reducir peticiones de red redundantes. El sistema admite la implementación de proveedores personalizados e incluye profiling de rendimiento para medir el tiempo y la memoria consumidos en las llamadas de geolocalización.
Implements interchangeable HTTP client adapters to handle network requests across different geocoding providers.
Ring is a Clojure HTTP web library that represents requests and responses as immutable data structures. It provides a functional framework for web development, treating HTTP traffic as standardized maps to decouple application logic from specific server implementations. The project features a middleware framework for composing reusable functional layers to handle cross-cutting concerns such as authentication and logging. It includes a server adapter system that translates raw traffic into request maps, as well as a dedicated integration layer for upgrading standard HTTP connections to bidirec
Translates raw socket traffic and servlet requests into standardized maps for consumption by application handlers.
This project is a containerized search infrastructure designed to deploy a privacy-focused metasearch engine. It acts as a self-hosted search proxy that aggregates results from multiple external web, image, and academic search providers while anonymizing requests and stripping trackers to protect user identity. The system utilizes Docker to orchestrate the search instance, integrating caching mechanisms and reverse proxy support to ensure a private and efficient search environment. It employs a modular adapter-based integration to standardize diverse external API responses and a processing pi
Implements an architectural abstraction layer using modular adapters to normalize diverse external search API responses.