23 个仓库
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 是一款音乐库自动化管理器和客户端控制器,用于监控艺术家的最新发布,并自动化通过 BitTorrent 和 Usenet 获取音乐。它作为一个元数据组织器和集成器,连接下载客户端与媒体服务器,以维护完整且最新的数字音乐收藏。 该系统通过自动化库维护(例如扫描缺失曲目以填补空白,以及监控现有文件的更高质量版本以执行自动质量升级)来区分自己。它使用可配置的命名模式来重命名音频文件并组织文件夹,确保一致的本地文件系统结构。 广泛的功能包括自动化下载管理、手动发布搜索,以及通过寻找替代发布来处理失败下载的能力。该软件还与媒体播放器和服务器同步库更新和元数据更改。
Implements a standardized adapter pattern to support a wide range of BitTorrent and Usenet clients.
routing-controllers 是一个用于 TypeScript 的声明式 API 路由器和 Web 框架控制器。它提供了一个系统,用于使用基于类的装饰器和元数据定义 HTTP 路由和请求处理逻辑,从而将 API 端点组织成结构化的架构。 该项目利用基于适配器的服务器集成将路由逻辑与底层 Web 框架解耦,为 Express 和 Koa 提供了特定的集成。它具有一个基于反射的类型转换系统,可验证传入的请求参数并将其转换为类型化的类实例。 功能面涵盖了完整的请求-响应管道,包括中间件执行、响应拦截和全局错误管理。它支持高级路由实用程序,如全局路由前缀、基于文件系统的组件发现和依赖注入集成。其他功能包括基于角色的访问控制、已验证用户注入以及用于文件上传和响应流的专门处理程序。
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 是一个 PHP 库,用于使用各种第三方服务将地址转换为地理坐标,并将坐标转换回地址。它作为一个多提供商地理编码包装器和反向地理编码引擎,提供了一个抽象层来管理多个地理编码 API。 该项目允许在提供商之间切换或链接请求以进行故障转移,从而确保高可用性。它还作为 GeoIP 位置解析器,通过远程服务或本地二进制数据库将 IP 地址转换为地理坐标和位置详情。 该库包含将位置和地址对象导出为标准化地理格式的功能。它提供用于自定义地址字符串格式化、区域感知查询和结果缓存的工具,以减少冗余的网络请求。 该系统支持实现自定义提供商,并包含性能分析功能,以测量地理位置调用所花费的时间和内存。
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.