{"id":13463043,"url":"https://github.com/rom-rb/rom","last_synced_at":"2025-05-11T08:17:36.478Z","repository":{"id":8966465,"uuid":"10707658","full_name":"rom-rb/rom","owner":"rom-rb","description":"Data mapping and persistence toolkit for Ruby","archived":false,"fork":false,"pushed_at":"2025-01-21T13:59:31.000Z","size":8685,"stargazers_count":2095,"open_issues_count":26,"forks_count":161,"subscribers_count":73,"default_branch":"release-5.4","last_synced_at":"2025-05-08T23:42:45.946Z","etag":null,"topics":["data-access-layer","data-mapping","databases","ddd","nosql","persistence-toolkit","rom-rb","ruby","sql","toolkit"],"latest_commit_sha":null,"homepage":"https://rom-rb.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rom-rb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["solnic","timriley"],"open_collective":"rom"}},"created_at":"2013-06-15T14:59:58.000Z","updated_at":"2025-05-04T15:51:41.000Z","dependencies_parsed_at":"2023-01-13T15:05:43.746Z","dependency_job_id":"8459df64-021a-47e8-ad4a-1258031a3db5","html_url":"https://github.com/rom-rb/rom","commit_stats":{"total_commits":5253,"total_committers":96,"mean_commits":54.71875,"dds":0.4903864458404721,"last_synced_commit":"4a12556ec62de004ad583b0b6173b11f853f5260"},"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom-rb%2From","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom-rb%2From/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom-rb%2From/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rom-rb%2From/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rom-rb","download_url":"https://codeload.github.com/rom-rb/rom/tar.gz/refs/heads/release-5.4","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253377576,"owners_count":21898939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-access-layer","data-mapping","databases","ddd","nosql","persistence-toolkit","rom-rb","ruby","sql","toolkit"],"created_at":"2024-07-31T13:00:44.814Z","updated_at":"2025-05-10T07:22:29.136Z","avatar_url":"https://github.com/rom-rb.png","language":"Ruby","readme":"[gem]: https://rubygems.org/gems/rom\n[actions]: https://github.com/rom-rb/rom/actions\n[codacy]: https://www.codacy.com/gh/rom-rb/rom\n[inchpages]: http://inch-ci.org/github/rom-rb/rom/\n[chat]: https://rom-rb.zulipchat.com\n\n# rom [![Join the chat at https://rom-rb.zulipchat.com](https://img.shields.io/badge/rom--rb-join%20chat-942283.svg)][chat]\n\n[![Gem Version](https://badge.fury.io/rb/rom.svg)][gem]\n[![CI Status](https://github.com/rom-rb/rom/workflows/ci/badge.svg)][actions]\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/f473a2496d6e41ed94d3fc1e96c4a486)][codacy]\n[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/f473a2496d6e41ed94d3fc1e96c4a486)][codacy]\n[![Inline docs](http://inch-ci.org/github/rom-rb/rom.svg?branch=master\u0026style=flat)][inchpages]\n[![OpenCollective](https://opencollective.com/rom/backers/badge.svg)](#backers)\n[![OpenCollective](https://opencollective.com/rom/sponsors/badge.svg)](#sponsors)\n\nRuby Object Mapper (rom-rb) is a data mapping and persistence toolkit for Ruby\nwith the goal to provide powerful object mapping capabilities without limiting\nthe full power of your database.\n\nMain rom gem provides following components:\n\n* [core](https://github.com/rom-rb/rom/blob/master/core/README.md) - Core and Adapter APIs\n* [changeset](https://github.com/rom-rb/rom/blob/master/changeset/README.md) - Changeset objects integrated with rom-core\n* [repository](https://github.com/rom-rb/rom/blob/master/repository/README.md) - Additional repository abstraction integrated with rom-core\n\nLearn more:\n\n* [Introduction](http://rom-rb.org/learn/introduction)\n* [Quick Start](http://rom-rb.org/learn/repositories/quick-start)\n\n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/rom#backer)]\n\n\u003ca href=\"https://opencollective.com/rom/backer/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/backer/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/backer/29/avatar.svg\"\u003e\u003c/a\u003e\n\n## Sponsors\n\nBecome a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/rom#sponsor)]\n\n\u003ca href=\"https://opencollective.com/rom/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rom/sponsor/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/rom/sponsor/29/avatar.svg\"\u003e\u003c/a\u003e\n\n## Ecosystem\n\nThere are other gems within the rom ecosystem that you will find useful:\n\n* [rom-factory](https://github.com/rom-rb/rom-factory) struct generator with support for persistence\n\n## Adapters\n\n* [rom-sql](https://github.com/rom-rb/rom-sql)\n* [rom-yesql](https://github.com/rom-rb/rom-yesql)\n* [rom-elasticsearch](https://github.com/rom-rb/rom-elasticsearch)\n* [rom-http](https://github.com/rom-rb/rom-http)\n* [rom-couchdb](https://github.com/rom-rb/rom-couchdb)\n* [rom-csv](https://github.com/rom-rb/rom-csv)\n* [rom-yaml](https://github.com/rom-rb/rom-yaml)\n* [rom-cassandra](https://github.com/rom-rb/rom-cassandra)\n* [rom-event_store](https://github.com/rom-rb/rom-event_store)\n* [rom-git](https://github.com/rom-rb/rom-git)\n* [rom-influxdb](https://github.com/rom-rb/rom-influxdb)\n* [rom-json](https://github.com/rom-rb/rom-json)\n* [rom-kafka](https://github.com/rom-rb/rom-kafka)\n* [rom-mongo](https://github.com/rom-rb/rom-mongo)\n* [rom-neo4j](https://github.com/rom-rb/rom-neo4j)\n* [rom-rethinkdb](https://github.com/rom-rb/rom-rethinkdb)\n\n## Framework integrations\n\n* [rom-rails](https://github.com/rom-rb/rom-rails)\n\n## Community\n\n* [Official Blog](http://rom-rb.org/blog/)\n* [Discussion Forum](http://discourse.rom-rb.org)\n* [Chat](https://rom-rb.zulipchat.com)\n\n## Credits\n\nThis project has a long history and wouldn't exist without following people:\n\n * [Dan Kubb](https://github.com/dkubb)\n * [Markus Schirp](https://github.com/mbj)\n * [Martin Gamsjaeger](https://github.com/snusnu)\n\n## License\n\nSee `LICENSE` file.\n","funding_links":["https://github.com/sponsors/solnic","https://github.com/sponsors/timriley","https://opencollective.com/rom","https://opencollective.com/rom/backer/0/website","https://opencollective.com/rom/backer/1/website","https://opencollective.com/rom/backer/2/website","https://opencollective.com/rom/backer/3/website","https://opencollective.com/rom/backer/4/website","https://opencollective.com/rom/backer/5/website","https://opencollective.com/rom/backer/6/website","https://opencollective.com/rom/backer/7/website","https://opencollective.com/rom/backer/8/website","https://opencollective.com/rom/backer/9/website","https://opencollective.com/rom/backer/10/website","https://opencollective.com/rom/backer/11/website","https://opencollective.com/rom/backer/12/website","https://opencollective.com/rom/backer/13/website","https://opencollective.com/rom/backer/14/website","https://opencollective.com/rom/backer/15/website","https://opencollective.com/rom/backer/16/website","https://opencollective.com/rom/backer/17/website","https://opencollective.com/rom/backer/18/website","https://opencollective.com/rom/backer/19/website","https://opencollective.com/rom/backer/20/website","https://opencollective.com/rom/backer/21/website","https://opencollective.com/rom/backer/22/website","https://opencollective.com/rom/backer/23/website","https://opencollective.com/rom/backer/24/website","https://opencollective.com/rom/backer/25/website","https://opencollective.com/rom/backer/26/website","https://opencollective.com/rom/backer/27/website","https://opencollective.com/rom/backer/28/website","https://opencollective.com/rom/backer/29/website"],"categories":["Data Persistence","Ruby","ORM/ODM"],"sub_categories":["Object-relational mapping"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2From-rb%2From","html_url":"https://awesome.ecosyste.ms/projects/github.com%2From-rb%2From","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2From-rb%2From/lists"}