A data mapping and persistence toolkit for Ruby that provides powerful object mapping without limiting database capabilities.
Ruby Object Mapper (rom-rb) is a data mapping and persistence toolkit for Ruby applications. It provides a set of libraries for mapping between application objects and various data sources like SQL databases, NoSQL stores, and files. It solves the problem of rigid object-relational mapping by offering a flexible, adapter-based architecture that doesn't hide database capabilities.
Ruby developers building applications that require complex data access patterns, multiple data sources, or who want more control over database interactions than traditional ORMs provide.
Developers choose rom-rb for its modular design, explicit data access patterns, and ability to leverage full database power without abstraction penalties. It's particularly valuable for applications where database performance and flexibility are critical.
Data mapping and persistence toolkit for Ruby
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Core and adapter APIs support various data sources like SQL, MongoDB, CSV, and JSON, enabling flexible integration across databases and files, as shown in the ecosystem list.
Changeset objects and repository abstraction enforce clean separation between persistence logic and domain models, reducing hidden magic and improving maintainability.
Emphasizes leveraging full database capabilities without abstraction penalties, allowing raw SQL and optimized queries for better performance, as per the project philosophy.
Includes numerous adapters and framework integrations like rom-rails, making it adaptable to diverse environments and easing adoption in existing Ruby stacks.
Requires more configuration and explicit code compared to convention-based ORMs, slowing down initial development for simple use cases.
The modular design and explicit patterns demand deeper understanding of data mapping concepts, which can be a barrier for teams familiar with simpler ORMs.
While backed by sponsors, it has a smaller ecosystem than mainstream options like ActiveRecord, leading to fewer tutorials and community support resources.