58 Repos
Libraries and frameworks for Ruby and Rails development.
Explore 58 awesome GitHub repositories matching part of an awesome list · Ruby Frameworks and Tools. Refine with filters or upvote what's useful.
This project is a full-stack web framework designed for building database-backed applications through a standardized architectural pattern. It provides a comprehensive suite of integrated libraries that manage the entire request-response lifecycle, from routing incoming web traffic to rendering dynamic server-side templates. By utilizing an object-relational mapping layer, the framework allows developers to define domain models that map database tables directly to application objects, simplifying data persistence, schema migrations, and complex relationship management. The framework is distin
Source code for the Rails framework.
Ruby is a general-purpose, dynamic programming language built on an object-oriented runtime environment. It treats every piece of data as an object, ensuring a consistent interface for manipulation across the entire system. The language is designed to support programmer productivity through a focus on natural syntax and flexible metaprogramming capabilities. The runtime distinguishes itself through a pure object model that allows for dynamic class modification and runtime method definition. It supports functional programming patterns by encapsulating code blocks as objects that capture their
Source code for the Ruby language.
Sass is a stylesheet compilation engine and CSS preprocessor that extends standard CSS with variables, nested rules, mixins, and functions. It functions as a comprehensive design system tool, enabling developers to organize complex stylesheets into modular, reusable components while automating the transformation of advanced syntax into browser-compatible CSS. The project distinguishes itself through its sophisticated build automation and language-level extensibility. It provides robust support for programmatic style generation, including conditional logic, iterative loops, and unit-aware math
CSS preprocessor for modular and maintainable styles.
Faker is a synthetic data generation library used to create realistic but fake information, such as names, addresses, and phone numbers, for software testing and database population. It functions as a tool for producing synthetic test data to fill development databases with records that simulate production environments. The library provides localized data generation, allowing synthetic information to be customized for specific geographic regions and language formats. It also includes a mechanism for unique value enforcement to prevent the repetition of generated data by tracking and rejecting
Generates fake data for testing.
Pundit is a Ruby authorization framework that implements policy-based access control. It maps domain models to dedicated logic classes that determine whether a user is permitted to perform specific actions on data objects. The framework utilizes plain Ruby objects to decouple authorization logic from the model. It includes mechanisms for data query scoping to filter record collections based on user permissions, as well as attribute-level permission control to restrict which specific model fields a user can modify. The system provides tools for authorization coverage verification to ensure se
Authorization library for Ruby.
Middleman is a Ruby-based static site generator and web framework used to transform templates and assets into standalone HTML, CSS, and JavaScript files. It functions as a multi-engine template processor and build tool, converting source markup into production-ready websites that can be hosted on any web server. The system is distinguished by a comprehensive asset pipeline that handles compression, minification, and fingerprinting to optimize web delivery. It features an extensible architecture with lifecycle hooks and a middleware-based request interception layer, allowing for the programmat
Tool for building static websites.
Nokogiri is an XML and HTML parsing library that builds navigable document trees from strings, files, or URLs using native C parsers for speed and standards compliance. It provides a CSS selector engine that translates CSS3 selectors into XPath expressions for querying nodes, an XPath query interface with namespace support, a document manipulation toolkit for modifying parsed documents, XSD schema validation, and XSLT transformation capabilities. The library wraps libxml2 and libxslt C libraries with Ruby bindings for high-performance parsing, and integrates Google's Gumbo parser for standard
HTML and XML parsing library.
VCR is a Ruby library that records and replays HTTP interactions during test runs, storing them in serialized cassette files. It captures real HTTP requests and responses, then serves those recorded responses instead of making actual network calls, enabling fast and deterministic test suites that work offline. The library provides configurable request matching, allowing comparisons based on method, URI, host, path, body, or headers to find the correct recorded response. It supports scheduled cassette re-recording to automatically refresh stored interactions at a configurable interval, keeping
Records and replays HTTP interactions for testing.
Markup is a tool for converting various documentation formats and manual pages into structured HTML. It functions as a rendering engine selector and converter that transforms raw markup files into web-ready output using a pluggable pipeline. The system identifies the appropriate rendering engine by utilizing file extensions or analyzing document content through pattern-based language detection. This allows the pipeline to handle documents where file extensions are missing or ambiguous. The project covers a broad range of content transformation, including the conversion of traditional man pag
Markup file parsing library.
Dieses Projekt ist ein Rack-Middleware-Rate-Limiter und eine Application-Layer-Firewall für Ruby-Webanwendungen. Es dient als Sicherheitsebene, um HTTP-Anfragen basierend auf benutzerdefinierten Regeln zu drosseln und zu blockieren und Webserver vor missbräuchlichem Traffic zu schützen. Das System bietet Funktionen für IP-Blocking und das Sperren schädlicher Clients. Es implementiert Request-Safelisting, um Einschränkungen für vertrauenswürdige Benutzer zu umgehen, und nutzt zeitbasierte Rate-Limiting-Fenster, um die Anfragenfrequenz zu steuern. Die Middleware deckt Traffic-Management und Monitoring ab, einschließlich der Möglichkeit, Request-Muster zu verfolgen und Traffic-Ereignisse in Echtzeit zu instrumentieren. Zudem ermöglicht sie die Anpassung von Response-Bodys und Headern, wenn Anfragen blockiert oder gedrosselt werden.
Rack middleware for blocking abusive requests.
mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into a compact, platform-independent bytecode that executes on a register-based virtual machine, and exposes a stable C API for host programs to initialize the interpreter, load bytecode, and invoke Ruby methods at runtime. The interpreter distinguishes itself through a tightly coupled parser and compiler that performs lexical analysis, syntax parsing, and bytecode generation in a single pass without constructing an intermediate AST, minimizing memory overhead. It also includes a
Lightweight Ruby implementation.
Slim ist eine prägnante, einrückungsbasierte Template-Sprache und Markup-Engine zur Generierung von HTML und XML. Entwickelt für das Ruby-Ökosystem, wandelt sie Kurzschreibweisen in wohlgeformte Dokumente um, ohne dass herkömmliche schließende Tags erforderlich sind. Die Engine fungiert als Multi-Engine-Wrapper, der die Integration externer Rendering-Engines wie Markdown und Sass innerhalb einer einzigen Template-Datei ermöglicht. Sie bietet zudem eine Befehlszeilenschnittstelle zum Rendern von Templates und zum Konvertieren zwischen verschiedenen Markup-Formaten. Das System unterstützt die dynamische Content-Generierung durch eingebettete Ruby-Logik, einschließlich Schleifen, Bedingungen und Ausdrucksinterpolation. Es enthält Funktionen für die modulare UI-Entwicklung durch wiederverwendbare Template-Fragmente sowie spezialisierte Tools für Whitespace-Management, Doctype-Generierung und das Mapping von Datensammlungen auf Elementattribute.
High-performance template engine for Ruby.
rspec-rails ist ein Test-Framework, das RSpec mit Ruby on Rails integriert, um Tools für Behavior-Driven Development (BDD) bereitzustellen. Es dient als Suite zur Definition von Anwendungsverhalten durch eine konversationelle Syntax und bietet ein spezialisiertes Toolkit zur Erstellung von Verhaltensspezifikationen für Modelle, Controller und Views. Das Projekt zeichnet sich durch automatisierte Testgenerierung aus und bietet ein CLI zur Erstellung von Boilerplate-Spezifikationsdateien für Rails-Komponenten wie Modelle, Controller und Hintergrund-Jobs. Es differenziert sich zudem durch eine umfassende Mocking- und Stubbing-Bibliothek sowie eine Web-App-Integrationssuite, die darauf ausgelegt ist, vollständige Request-Zyklen und Browser-Interaktionen zu simulieren. Das Framework deckt ein breites Spektrum an Integrationstests ab, einschließlich der Überprüfung von Routen-Mappings, der Validierung von Mailer-Inhalten und der Ausführung von Hintergrund-Jobs. Es bietet eine Vielzahl von Test-Assertions zur Validierung von Objektzuständen, HTTP-Response-Status und Datenbankabfrageergebnissen sowie Tools zur Verwaltung von Test-Doubles mittels Spies und Stubs. Das System enthält ein CLI-Executable für die Testausführung und einen persistenten Konfigurationsspeicher zur Standardisierung von Einstellungen über Umgebungen hinweg.
RSpec testing framework for Rails.
Diese Bibliothek bietet ein Framework zur Definition von Finite State Machines innerhalb von Ruby-Klassen, um komplexe Objekt-Lebenszyklen zu verwalten. Sie fungiert als deklarative Workflow-Engine, die es Entwicklern ermöglicht, Objektzustände, Ereignisse und Übergänge über eine lesbare Domain-Specific Language (DSL) zu modellieren. Durch die direkte Integration in Datenbank-Persistenzschichten stellt das Framework sicher, dass Zustandsänderungen mit den gespeicherten Datensätzen synchronisiert werden, während die Datenintegrität durch Transaktionsmanagement und Row-Locking gewahrt bleibt. Die Bibliothek zeichnet sich dadurch aus, dass sie strikte Geschäftsregeln durch bedingte Transition-Guards erzwingt und direkte Zustandsänderungen verhindert, wodurch sichergestellt wird, dass alle Lebenszyklusänderungen ausschließlich über definierte Ereignisse erfolgen. Sie unterstützt mehrere unabhängige State Machines innerhalb einer Klasse, indem sie diese auf unterschiedliche Datenbankfelder abbildet, was eine isolierte Lebenszyklussteuerung ermöglicht. Zudem generiert sie automatisch dynamische Instanzmethoden für Zustandsabfragen und Ereignisauslöser sowie Datenbank-Query-Scopes, die das Filtern von Objekten basierend auf ihrem aktuellen Status vereinfachen. Über das reine Lebenszyklusmanagement hinaus enthält das Framework Hilfsmittel zur Lokalisierung von Zustandsnamen für mehrsprachige Schnittstellen und bietet Hooks zur Ausführung benutzerdefinierter Logik vor oder nach Übergängen. Es bietet zudem spezialisierte Test-Matcher, um State-Machine-Konfigurationen und Übergangslogik innerhalb automatisierter Test-Suites zu verifizieren. Das Projekt enthält Tools zum Kompilieren von Quellcode und Konfigurationen in strukturierte Dokumentationen zur Systemreferenz.
State machine library for Ruby.
Opal ist ein Ruby-Frontend-Framework und Compiler, der Ruby-Quellcode in JavaScript übersetzt. Er fungiert als Web-Laufzeitumgebung, die die Entwicklung clientseitiger Webanwendungen unter Verwendung von Ruby anstelle von JavaScript ermöglicht. Das Projekt enthält eine Ruby-HTML-Template-Engine, die Ruby-Code auswertet, der direkt in Markup-Dateien eingebettet ist. Es integriert sich zudem in JavaScript-Umgebungen, indem es Kernbibliotheken und Abhängigkeiten in einen Distributions-String für die Ausführung in einem Webbrowser bündelt. Das System bietet Funktionen für die Kompilierung von Ruby zu JavaScript sowie die Fähigkeit, Base64-Daten zu kodieren und zu dekodieren.
Ruby to JavaScript transpiler.
SimpleCov ist ein Ruby-Code-Coverage-Tool und eine Analyse-Engine, die dazu verwendet wird, nachzuverfolgen, welche Zeilen, Zweige und Methoden von Code während Tests ausgeführt werden. Es fungiert als Coverage-Threshold-Enforcer und Test-Suite-Aggregator und zeichnet Ausführungsdaten auf, um ungetestete Bereiche einer Anwendung zu identifizieren. Das Tool zeichnet sich durch die Fähigkeit aus, Coverage-Ergebnisse von parallelen Worker-Prozessen und Subprozessen in einem einzigen, vereinheitlichten Bericht zusammenzuführen. Es unterstützt den Baseline-Vergleich, um Coverage-Regressionen zu erkennen, und kann Daten aus Code sammeln, der über dynamische Evaluierungsmethoden ausgeführt wurde, wie sie in Templating-Engines verwendet werden. Seine breiteren Fähigkeiten umfassen die Generierung von Berichten in mehreren Formaten, Quellgruppierung und Dateifilterung unter Verwendung regulärer Ausdrücke. Das System bietet zudem eine Kommandozeilenschnittstelle zur Anzeige von Statistiken und zur Auflistung nicht abgedeckter Dateien.
Code coverage analysis for Ruby.
Prawn ist eine Ruby-Bibliothek und ein Dokument-Layout-Tool, das für die programmatische Generierung von PDF-Dateien verwendet wird. Es fungiert als Vektorgrafik-Engine, die die Erstellung portabler Dokumente mit formatiertem Text, benutzerdefinierten Formen und organisierten Seitenlayouts ermöglicht. Die Bibliothek unterscheidet sich durch ein koordinatenbasiertes Vektor-Rendering-System, das Multi-Stop-Farbverläufe, komplexe Polygone und ebenenbasiertes Blending unterstützt. Sie bietet ein umfassendes Typografie-System, das in der Lage ist, TrueType- und OpenType-Fonts einzubetten, um UTF-8-Zeichen und rechts-nach-links-Text für mehrsprachiges Publizieren zu unterstützen. Zu den breiten Funktionen gehören das Management der Dokumentstruktur mit hierarchischen Gliederungen, das Einbetten von Rasterbildern mit Transparenzunterstützung und das Einfügen interaktiver Hyperlinks. Das System enthält zudem Sicherheitsfunktionen für Dokumentenverschlüsselung und Passwortschutz.
PDF generation tool for Ruby.
EventMachine ist ein auf dem Reactor-Pattern basierendes Netzwerk-Framework für Ruby, das eine asynchrone I/O-Bibliothek für nicht-blockierende Netzwerk- und Dateioperationen bereitstellt. Es fungiert als Framework für Netzwerkserver, um skalierbare TCP- und UDP-Server sowie Clients zu erstellen, die mehrere gleichzeitige Anfragen verarbeiten. Das Framework implementiert ein Concurrency-Modell, das Netzwerkereignisse über eine Single-Threaded-Event-Loop an registrierte Handler verteilt. Dieser Ansatz ermöglicht die Verwaltung hochgradig gleichzeitiger Netzwerkverbindungen ohne den Overhead von Multi-Threading. Die Bibliothek deckt die Entwicklung ereignisgesteuerter Server, asynchroner Netzwerk-Clients und Netzwerk-Proxy-Implementierungen ab. Zudem bietet sie Funktionen zur Überwachung von Dateien und Netzwerken, um bei bestimmten Ereignissen Aktionen auszulösen.
Event-driven library for Ruby.
Parallel is a Ruby library and multi-process execution framework designed to accelerate CPU-intensive operations. It functions as a parallel job orchestrator and concurrent task runner that enables the execution of code across multiple processes or threads. The project distinguishes itself through secure inter-process communication, utilizing signed data serialization to prevent the injection of forged payloads between parent and child processes. It further differentiates its worker management by assigning unique identifiers to individual processes to prevent collisions when accessing shared
Parallel processing library for Ruby.
Dieses Projekt ist ein Performance-Analysetool für Ruby-Anwendungen unter Verwendung der Rack-Schnittstelle. Es überwacht die Ausführungszeiten von Anfragen und die Ressourcennutzung und dient als Profiler für Webanwendungen, um Latenz zu messen und Engpässe zu identifizieren. Das Tool bietet spezifische Analysatoren für die Performance von Datenbankabfragen, Speicherallokationen und Garbage-Collection-Statistiken. Es generiert Call-Stack-Flamegraphs, um die Zeitverteilung über Methoden hinweg zu visualisieren, und rendert Speed-Badges sowie Timing-Metriken direkt auf HTML-Seiten. Das System deckt breitere Performance-Profiling-Funktionen ab, einschließlich der Verfolgung benutzerdefinierter Code-Blöcke, des Exports von Profiling-Daten an entfernte URLs und des Performance-Samplings in der Produktion. Es enthält Mechanismen zur Persistenz von Profiling-Daten über verschiedene Speicher-Backends hinweg und implementiert Zugriffskontrolle, um einzuschränken, wer sensible Performance-Metriken einsehen darf.
Performance profiling middleware for Rack.