25 Repos
Frameworks and interfaces designed to allow developers to add custom functionality or integrations.
Distinguishing note: Focuses on architectural patterns for extensibility rather than specific implementation details.
Explore 25 awesome GitHub repositories matching software engineering & architecture · Extensibility Patterns. Refine with filters or upvote what's useful.
MediaCrawler is an automated web scraping framework designed to extract public posts, comments, and creator metadata from various social media platforms. It functions as a headless browser automator, utilizing real browser instances to render dynamic content and execute the client-side scripts necessary for interacting with modern web interfaces. The system distinguishes itself through a focus on session persistence and network flexibility. It supports remote debugging to reuse active browser sessions and cookies, which helps minimize the risk of triggering platform security challenges. To ma
Provides abstract base classes to allow developers to integrate new social media platforms and storage backends.
Telescope is a fuzzy search interface for the Neovim text editor, designed to provide rapid access to files, buffers, and project-wide data. It functions as a keyboard-driven command palette that allows users to locate and navigate complex directory structures and codebase content through real-time filtering. The system is built on a modular architecture that utilizes a pluggable interface to fetch data from diverse sources, including file systems, version control repositories, and language server protocols. By separating input collection from data retrieval, it maintains a decoupled state ma
Provides a pluggable interface for fetching data from diverse sources like file systems, git, and language servers.
SwifterSwift is a collection of Swift extensions designed to reduce boilerplate code during the development of iOS and macOS applications. It provides a library of pre-made utilities that extend the standard library and system frameworks to streamline data manipulation, system integration, and user interface optimization. The project provides specialized tools for a wide range of development tasks. This includes image processing and binary translation, text string manipulation, and complex data management for arrays, strings, and dictionaries. It also offers utilities for network request mana
Adds reusable functionality to existing Swift types by extending standard library protocols and system frameworks.
JSPatch is a JavaScript native bridge and method swizzler that allows for the dynamic injection of logic into a hosted native environment. It functions as a cross-language data mapper and execution engine, enabling the replacement of native function pointers with JavaScript wrappers to modify application behavior at runtime. The project provides the ability to perform runtime application patching by overriding native class methods and object properties. This allows for the modification of application logic and the application of hotfixes using JavaScript code loaded from local files or remote
Loads extension modules to add support for custom C functions and complex data structures.
Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data. The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-tim
Implements protocol functions by defining them directly within the metadata of a value.
UFO is a multi-device task orchestrator and LLM agent orchestration framework designed to decompose natural language requests into executable task graphs. It functions as a cross-platform UI automation tool capable of performing interactions on Windows and mobile devices while routing tasks to distributed agents based on their hardware and software capabilities. The system is distinguished by its RAG-enhanced agent architecture, which integrates external documentation and previous execution traces to improve decision-making. It employs a hybrid UI detection approach that combines computer vis
Adds custom processing to the message pipeline via middleware or specialized handlers for new message types.
Model Context Protocol is a standardized framework for connecting large language models to external data sources and executable tools. It enables the creation of a universal interface where servers expose tools, resources, and prompts that can be discovered and utilized by various AI clients. The protocol utilizes a JSON-RPC message system that is transport-agnostic, supporting both standard input/output for local processes and HTTP with server-sent events for remote connections. It emphasizes security and control by delegating model sampling to the client to keep API keys secure from servers
Allows adding optional or experimental functionality beyond the core specification using unique vendor identifiers.
Bullet is an Active Record performance monitor and query profiler for Ruby on Rails applications. It serves as a diagnostic utility to identify inefficient database access patterns, flag redundant requests, and suggest eager loading strategies to improve response times. The tool specifically detects N+1 queries, missing counter caches, and unused eager loading. It monitors these patterns across both standard web requests and background jobs, identifying records that are fetched but never accessed to reduce memory usage and query overhead. Analysis is supported by a system that intercepts dat
Uses a pluggable class system allowing users to define new logic for identifying specific database inefficiency patterns.
Implements a deterministic priority chain for icon assignment based on filename, extension, and pattern.
Proposes, implements, and publishes new optional capabilities through a formal lifecycle.
Doorkeeper ist ein OAuth 2-Autorisierungsserver und Provider für Ruby on Rails- und Grape-Anwendungen. Er bietet das notwendige Framework, um einen Autorisierungsserver zu bauen, der Sicherheitstoken für Drittanbieter-Anwendungen ausstellt und validiert, und fungiert effektiv als Sicherheits-Middleware zum Schutz von API-Endpunkten. Das Projekt integriert eine Identitätsschicht via OpenID Connect, um Benutzeridentitäten zu verifizieren und Profilinformationen abzurufen. Es unterstützt eine Vielzahl von Sicherheitsmustern, einschließlich der Implementierung des PKCE-Flows für öffentliche Clients und der Ausstellung zustandsloser JSON Web Tokens (JWT). Die breiteren Funktionen decken den gesamten Token-Lebenszyklus ab, einschließlich kryptografischem Hashing von Token und Secrets, scope-basierter Zugriffsbeschränkung und Token-Widerruf. Es verwaltet die Registrierung von Drittanbieter-Anwendungen und bietet Mechanismen für die Identifizierung von Ressourcenbesitzern und die Ausführung von Autorisierungs-Flows. Das System enthält eine Persistenzschicht mit Unterstützung für mehrere Datenbank-Adapter, einschließlich Active Record, Sequel und MongoDB.
Allows developers to override default entity behaviors by specifying custom classes for applications and tokens.
Rhai ist eine eingebettete Skript-Engine und eine dynamisch typisierte Sprache, die für die Integration in Rust-Anwendungen entwickelt wurde. Sie fungiert als Compiler für abstrakte Syntaxbäume (AST) und als native Interop-Schicht, die es Entwicklern ermöglicht, Rust-Typen und -Funktionen für eine bidirektionale Kommunikation in eine Skriptumgebung zu mappen. Das Projekt dient als Framework zur Erstellung anpassbarer domänenspezifischer Sprachen. Es erlaubt die Definition benutzerdefinierter Operatoren, Syntax und eingeschränkter Ausführungsumgebungen, was die Erstellung spezialisierter Sprachen mit maßgeschneiderten Funktionsumfängen ermöglicht. Die Engine deckt ein breites Spektrum an Funktionen ab, darunter ressourcenbeschränktes Sandboxing für sichere Ausführung, modulare Code-Organisation und umfassende Datenverarbeitung für numerische, String- und Binärtypen. Zudem bietet sie Werkzeuge für AST-Manipulation, Serialisierung des Ausführungszustands sowie Laufzeit-Observability durch Call-Stack-Inspektion und Debugging-Schnittstellen. Die Engine ist für den plattformübergreifenden Einsatz auf jeder CPU und jedem Betriebssystem konzipiert, das vom nativen Compiler unterstützt wird.
Allows loading sets of functions and modules into engine instances to share configurations.
ZenML is an extensible machine learning orchestration framework designed to manage the end-to-end lifecycle of data pipelines and AI agent workflows. It functions as a durable orchestrator that executes machine learning tasks as directed acyclic graphs, ensuring that every step is containerized for consistent performance across local, cloud, and hybrid infrastructure. By decoupling pipeline code from underlying compute and storage backends, the platform allows developers to define infrastructure-agnostic stacks that remain portable across diverse environments. The project distinguishes itself
Define and register custom stack component flavors to integrate external tools or specialized infrastructure backends into the pipeline environment.
ZenML is an orchestration platform designed for building, deploying, and monitoring reproducible machine learning pipelines and agentic workflows. It provides a unified framework that manages the entire lifecycle of machine learning assets, from data processing and model training to the deployment of persistent inference services. By decoupling pipeline logic from underlying compute and storage, the platform enables teams to transition workflows seamlessly from local development environments to production-grade cloud infrastructure. The platform distinguishes itself through a service-oriented
Registers and swaps specialized tools like experiment trackers, model deployers, and container registries to customize the execution environment.
Nanopb ist eine leichtgewichtige C-Implementierung von Protocol Buffers, die für ressourcenbeschränkte Systeme und Mikrocontroller entwickelt wurde. Sie fungiert sowohl als eingebettete Serialisierungsbibliothek zum Enkodieren und Dekodieren strukturierter Daten als auch als Codegenerator, der Definitionsdateien in kompakte C-Quell- und Header-Dateien umwandelt. Das Projekt zeichnet sich durch seinen Fokus auf statische Speicherallokation aus und verwendet feste Maximalgrößen für Strings und Arrays, um dynamische Speicherallokation und Heap-Fragmentierung zu vermeiden. Es setzt einen Callback-basierten Streaming-Mechanismus ein, um Nachrichten oder Felder zu verarbeiten, die den verfügbaren physischen RAM überschreiten, was die Handhabung von Daten variabler Länge ermöglicht, ohne den Systemspeicher zu erschöpfen. Die Bibliothek bietet breite Funktionen für Binärserialisierung, einschließlich Berechnung der enkodierten Größe, Verfolgung der Präsenz von Sub-Messages und Transport-Level-Framing. Sie enthält zudem Reflexions-Utilities für Feld-Iterationen, UTF-8-String-Validierung und strikte Grenzwerterzwingung, um Speichersicherheit beim Parsen nicht vertrauenswürdiger Binäreingaben zu gewährleisten.
Adds additional fields to existing messages using a linked list of handlers defined outside the original structure.
Aimeos is a professional PHP e-commerce framework designed for building online shops and marketplaces. It functions as a modular e-commerce engine that provides a dedicated administration dashboard for managing product data and orders, alongside a headless commerce API using REST and GraphQL interfaces for custom storefronts. The platform is distinguished by its multi-vendor marketplace system, which coordinates multiple sellers, channels, and warehouses. It employs a modular architecture and an interface-based extension pattern, allowing the injection of custom business logic through distrib
Implements standard contracts and interfaces that allow custom business logic to be injected without modifying core source code.
Dieses Projekt ist ein PHP-Kompatibilitäts-Polyfill, das entwickelt wurde, um Kernfunktionen und Konstanten von PHP 7.2 auf ältere Versionen der Sprache zurückzuportieren. Es dient als Erweiterung der PHP-Standardbibliothek und als Version-Backport und bietet eine Kompatibilitätsschicht, die Lücken im PHP-Kern füllt, um ein konsistentes Verhalten über verschiedene Umgebungen hinweg sicherzustellen. Die Bibliothek ermöglicht die Portabilität von Code über Versionen hinweg durch die Implementierung fehlender Standardbibliotheksfunktionen, wodurch neuere Sprachfeatures auf älteren PHP-Umgebungen ausgeführt werden können. Dies stellt sicher, dass Anwendungen eine konsistente Schnittstelle beibehalten und mit aktuellen Bibliotheken kompatibel bleiben, selbst wenn sie auf veralteten Versionen ausgeführt werden.
Inserts custom middleware logic into a message pipeline for validation and transactions.
Dieses Projekt ist ein formeller RFC-Vorschlag und eine technische Spezifikation für einen neuen Bereich von HTTP-Statuscodes. Es definiert einen Entwickler-Fehlerstandard, der darauf ausgelegt ist, Implementierungsfehler von Standard-Client- oder Serverfehlern innerhalb von REST-API-Antworten zu unterscheiden. Die Spezifikation schlägt eine Erweiterung des HTTP-Protokolls vor, die reservierte numerische Bereiche für Statuscodes einführt. Dieses System bildet eindeutige Ganzzahl-IDs auf spezifische Implementierungsfehler ab, bietet präzise diagnostische Bedeutung und isoliert Entwicklerfehler von Standard-Protokollantworten, während die Abwärtskompatibilität gewahrt bleibt. Der Standard deckt die API-Fehlerbehandlung und den Entwickler-Debugging-Workflow ab, indem er ein konsistentes Antwortschema für Fehler-Payloads etabliert. Dies stellt die Interoperabilität zwischen verschiedenen API-Clients und Servern bei der Meldung von Implementierungsfehlern sicher.
Proposes an extension to the HTTP specification by introducing new status codes without breaking backward compatibility.
Then is a syntactic sugar library for Swift that provides closure-based extensions for configuring objects and value types. It enables the assignment of multiple properties within a single block to reduce repetitive variable naming during initialization and modification. The library functions as both an object configuration tool and a value type modifier. It allows for the creation of modified copies of structs and enums by applying specific changes inside a scoped closure. These utilities support declarative workflows for defining user interface component properties and managing complex vie
Uses Swift protocol extensions to add configuration methods across all compatible types.
Cake ist ein plattformübergreifendes Build-Automatisierungssystem und Skripting-Framework, das es Nutzern ermöglicht, Software-Build-Pipelines mittels C#-Skripten zu definieren. Es fungiert als CI/CD-Pipeline-Orchestrator und Build-Runner und bietet eine stark typisierte, domänenspezifische Sprache, um die Orchestrierung von Kompilierung, Tests und Verpackungsprozessen unter Windows, Linux und macOS zu vereinfachen. Das System stellt reproduzierbare Build-Umgebungen durch das Pinnen von Versionen der Build-Tools, Module und Abhängigkeiten sicher. Es zeichnet sich dadurch aus, dass es einen C#-Skripting-Workflow mit vollständiger IDE-Unterstützung ermöglicht, einschließlich Autocomplete, Syntax-Highlighting und direkter Task-Ausführung innerhalb von Editoren. Das Framework deckt eine breite Palette an Funktionen ab, einschließlich der Ausführung von Directed-Acyclic-Graph-Tasks, plattformübergreifender Prozessabstraktion und automatisierter Tool-Installation. Es bietet umgebungsbewusste Erkennung für verschiedene Continuous-Integration-Anbieter und Erweiterbarkeit durch eine NuGet-basierte Plugin-Architektur und Dependency Injection. Build-Skripte werden als laufzeitkompilierte Binärdateien ausgeführt oder innerhalb einer Konsolenanwendung gehostet.
Extends build capabilities by importing external compiled .NET assemblies via NuGet packages.