58 dépôts
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.
Ce projet est un middleware Rack de limitation de débit et un pare-feu applicatif pour les applications web Ruby. Il sert de couche de sécurité pour brider et bloquer les requêtes HTTP basées sur des règles personnalisées, protégeant ainsi les serveurs web du trafic abusif. Le système offre des capacités de blocage IP et de bannissement de clients malveillants. Il implémente des listes blanches de requêtes pour contourner les restrictions pour les utilisateurs de confiance et utilise une limitation de débit basée sur des fenêtres temporelles pour contrôler la fréquence des requêtes. Le middleware couvre la gestion et la surveillance du trafic, incluant la capacité de suivre les modèles de requêtes et d'instrumenter les événements de trafic en temps réel. Il permet également la personnalisation du corps et des en-têtes des réponses lorsque les requêtes sont bloquées ou bridées.
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 est un langage de template concis basé sur l'indentation et un moteur de balisage pour générer du HTML et du XML. Conçu pour l'écosystème Ruby, il convertit une syntaxe abrégée en documents bien formés sans avoir besoin de balises de fermeture traditionnelles. Le moteur fonctionne comme un wrapper multi-moteur, permettant l'intégration de moteurs de rendu externes tels que Markdown et Sass au sein d'un seul fichier de template. Il fournit également une interface en ligne de commande pour rendre des templates et les convertir entre différents formats de balisage. Le système prend en charge la génération de contenu dynamique via une logique Ruby intégrée, incluant des boucles, des conditionnels et l'interpolation d'expressions. Il inclut des capacités pour le développement d'UI modulaire via des fragments de template réutilisables, ainsi que des outils spécialisés pour la gestion des espaces blancs, la génération de doctype et le mapping de collections de données vers des attributs d'éléments.
High-performance template engine for Ruby.
rspec-rails est un framework de test qui intègre RSpec à Ruby on Rails pour fournir des outils de développement piloté par le comportement (BDD). Il sert de suite pour définir le comportement de l'application via une syntaxe conversationnelle, offrant une boîte à outils spécialisée pour créer des spécifications comportementales pour les modèles, les contrôleurs et les vues. Le projet se distingue par la génération automatique de tests, fournissant une interface en ligne de commande pour créer des fichiers de spécification boilerplate pour les composants Rails tels que les modèles, les contrôleurs et les tâches en arrière-plan. Il différencie ses capacités avec une bibliothèque complète de mocking et de stubbing, ainsi qu'une suite d'intégration d'applications web conçue pour simuler des cycles de requête complets et des interactions de navigateur. Le framework couvre une large surface de tests d'intégration, incluant la vérification du routage, la validation du contenu des mailers et l'exécution des tâches en arrière-plan. Il fournit un large éventail d'assertions de test pour valider l'état des objets, les statuts de réponse HTTP et les résultats de requêtes de base de données, ainsi que des outils pour gérer les doubles de test via des espions (spies) et des stubs. Le système inclut un exécutable en ligne de commande pour l'exécution des tests et un magasin de configuration persistant pour standardiser les paramètres entre les environnements.
RSpec testing framework for Rails.
Cette bibliothèque fournit un framework pour définir des machines à états finis au sein de classes Ruby afin de gérer des cycles de vie d'objets complexes. Elle fonctionne comme un moteur de workflow déclaratif, permettant aux développeurs de modéliser les états, les événements et les transitions des objets via un langage dédié (DSL) lisible. En s'intégrant directement aux couches de persistance de base de données, le framework garantit que les changements d'état sont synchronisés avec les enregistrements de stockage tout en maintenant l'intégrité des données grâce à la gestion des transactions et au verrouillage des lignes. La bibliothèque se distingue en imposant des règles métier strictes via des gardes de transition conditionnels et en empêchant la modification directe de l'état, garantissant que tous les changements de cycle de vie se produisent exclusivement via des événements définis. Elle prend en charge plusieurs machines à états indépendantes au sein d'une même classe en les mappant à des champs de base de données distincts, offrant un contrôle de cycle de vie isolé. De plus, elle génère automatiquement des méthodes d'instance dynamiques pour interroger les états et déclencher des événements, ainsi que des scopes de requête de base de données qui simplifient le filtrage des objets en fonction de leur statut actuel. Au-delà de la gestion de base du cycle de vie, le framework inclut des utilitaires pour la localisation des noms d'état afin de prendre en charge les interfaces multilingues et fournit des hooks pour exécuter une logique personnalisée avant ou après les transitions. Il propose également des matchers de test spécialisés pour vérifier les configurations de machines à états et la logique de transition au sein des suites de tests automatisées. Le projet inclut des outils pour compiler le code source et les configurations en documentation structurée pour faciliter la référence système.
State machine library for Ruby.
Opal est un framework frontend Ruby et un compilateur qui traduit le code source Ruby en JavaScript. Il fonctionne comme un runtime web qui permet le développement d'applications web côté client en utilisant Ruby au lieu de JavaScript. Le projet inclut un moteur de modèle HTML Ruby qui évalue le code Ruby intégré directement dans les fichiers de balisage. Il s'intègre en outre aux environnements JavaScript en regroupant les bibliothèques principales et les dépendances dans une chaîne de distribution pour l'exécution dans un navigateur web. Le système offre des capacités pour la compilation de Ruby vers JavaScript et la capacité d'encoder et de décoder des données Base64.
Ruby to JavaScript transpiler.
SimpleCov est un outil de couverture de code Ruby et un moteur d'analyse utilisé pour suivre quelles lignes, branches et méthodes de code s'exécutent pendant les tests. Il fonctionne comme un exécuteur de seuil de couverture et un agrégateur de suite de tests, enregistrant les données d'exécution pour identifier les zones non testées d'une application. L'outil se distingue par la capacité de fusionner les résultats de couverture provenant de processus de travail parallèles et de sous-processus en un rapport unifié unique. Il prend en charge la comparaison de base pour détecter les régressions de couverture et peut recueillir des données à partir de code exécuté via des méthodes d'évaluation dynamique, telles que celles utilisées dans les moteurs de templating. Ses capacités plus larges incluent la génération de rapports multi-formats, le regroupement de fichiers sources et le filtrage de fichiers à l'aide d'expressions régulières. Le système fournit également une interface en ligne de commande pour afficher des statistiques et lister les fichiers non couverts.
Code coverage analysis for Ruby.
Prawn est une bibliothèque Ruby et un outil de mise en page de documents utilisés pour la génération programmatique de fichiers PDF. Il fonctionne comme un moteur graphique vectoriel qui permet la création de documents portables contenant du texte formaté, des formes personnalisées et des mises en page organisées. La bibliothèque se différencie par un système de rendu vectoriel basé sur des coordonnées qui prend en charge les remplissages en dégradé multi-étapes, les polygones complexes et le mélange basé sur les calques. Elle fournit un système de typographie complet capable d'intégrer des polices TrueType et OpenType pour prendre en charge les caractères UTF-8 et le texte de droite à gauche pour l'édition multilingue. Les capacités étendues incluent la gestion de la structure des documents avec des plans hiérarchiques, l'intégration d'images matricielles avec prise en charge de la transparence et l'insertion d'hyperliens interactifs. Le système inclut également des fonctionnalités de sécurité pour le chiffrement des documents et la protection par mot de passe.
PDF generation tool for Ruby.
EventMachine est un framework réseau basé sur le pattern reactor pour Ruby, fournissant une bibliothèque d'E/S asynchrones pour les opérations réseau et fichiers non bloquantes. Il sert de framework de serveur réseau pour construire des serveurs et clients TCP et UDP scalables traitant de multiples requêtes simultanées. Le framework implémente un modèle de concurrence qui distribue les événements réseau aux gestionnaires enregistrés via une boucle d'événements monothread. Cette approche permet de gérer des connexions réseau à haute concurrence sans la surcharge de la programmation multithread. La bibliothèque couvre le développement de serveurs pilotés par les événements, de clients réseau asynchrones et d'implémentations de proxy réseau. Elle offre également des capacités de surveillance de fichiers et de réseaux pour déclencher des actions lors d'événements spécifiques.
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.
Ce projet est un outil d'analyse de performance pour les applications Ruby utilisant l'interface Rack. Il surveille les temps d'exécution des requêtes et l'utilisation des ressources, servant de profileur pour les applications web afin de mesurer la latence et d'identifier les goulots d'étranglement. L'outil fournit des analyseurs spécifiques pour la performance des requêtes de base de données, les allocations de mémoire et les statistiques de garbage collection. Il génère des flamegraphs de pile d'appels pour visualiser la distribution du temps à travers les méthodes et affiche des badges de vitesse et des métriques de timing directement sur les pages HTML. Le système couvre des capacités de profilage de performance plus larges incluant le suivi de blocs de code personnalisés, l'exportation de données de profilage vers des URL distantes et l'échantillonnage de performance en production. Il inclut des mécanismes pour la persistance des données de profilage à travers différents backends de stockage et implémente un contrôle d'accès pour restreindre qui peut voir les métriques de performance sensibles.
Performance profiling middleware for Rack.