{"id":31651,"name":"awesome","description":"An open API service indexing awesome lists of open source software.","url":"https://github.com/ecosyste-ms/awesome","last_synced_at":"2025-09-05T05:12:30.064Z","repository":{"id":215248209,"uuid":"738197117","full_name":"ecosyste-ms/awesome","owner":"ecosyste-ms","description":"An open API service indexing awesome lists of open source software.","archived":false,"fork":false,"pushed_at":"2025-08-30T10:18:41.000Z","size":761,"stargazers_count":29,"open_issues_count":6,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-31T03:49:06.595Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://awesome.ecosyste.ms","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecosyste-ms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"ecosystems","github":"andrew"}},"created_at":"2024-01-02T16:52:05.000Z","updated_at":"2025-08-30T10:18:44.000Z","dependencies_parsed_at":"2024-01-21T23:48:02.526Z","dependency_job_id":"d6af8dc3-99c5-47e4-bb1f-986d4dcaf994","html_url":"https://github.com/ecosyste-ms/awesome","commit_stats":{"total_commits":306,"total_committers":2,"mean_commits":153.0,"dds":0.09150326797385622,"last_synced_commit":"e2a11c2ab756e8ec371847266bcea8bc7bd0234a"},"previous_names":["ecosyste-ms/awesome"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ecosyste-ms/awesome","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecosyste-ms","download_url":"https://codeload.github.com/ecosyste-ms/awesome/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273539314,"owners_count":25123499,"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","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"}},"owner":{"login":"ecosyste-ms","name":"Ecosystems","uuid":"98474690","kind":"organization","description":"Tools and open datasets to support, sustain, and secure critical digital infrastructure","email":"hello@ecosyste.ms","website":"https://ecosyste.ms","location":"United Kingdom","twitter":"ecosyste_ms","company":null,"icon_url":"https://avatars.githubusercontent.com/u/98474690?v=4","repositories_count":37,"last_synced_at":"2024-10-29T15:54:09.590Z","metadata":{"has_sponsors_listing":false,"funding":{"open_collective":"ecosystems","github":"andrew"}},"html_url":"https://github.com/ecosyste-ms","funding_links":["https://opencollective.com/ecosystems","https://github.com/sponsors/andrew"],"total_stars":107,"followers":76,"following":0,"created_at":"2022-11-14T09:05:01.949Z","updated_at":"2024-10-29T15:54:09.590Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecosyste-ms","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecosyste-ms/repositories"},"packages":[],"commits":{"id":1542159,"full_name":"ecosyste-ms/awesome","default_branch":"main","committers":[{"name":"Andrew Nesbitt","email":"andrewnez@gmail.com","login":"andrew","count":439},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":57},{"name":"github-actions[bot]","email":"github-actions[bot]","login":"github-actions[bot]","count":6}],"total_commits":502,"total_committers":3,"total_bot_commits":63,"total_bot_committers":2,"mean_commits":167.33333333333334,"dds":0.1254980079681275,"past_year_committers":[{"name":"Andrew Nesbitt","email":"andrewnez@gmail.com","login":"andrew","count":171},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":30},{"name":"github-actions[bot]","email":"github-actions[bot]","login":"github-actions[bot]","count":6}],"past_year_total_commits":207,"past_year_total_committers":3,"past_year_total_bot_commits":36,"past_year_total_bot_committers":2,"past_year_mean_commits":69.0,"past_year_dds":0.17391304347826086,"last_synced_at":"2025-08-30T14:05:33.389Z","last_synced_commit":"cf88534c26a3b51ed71442d5a5df7fe36c14e522","created_at":"2024-02-26T20:31:37.629Z","updated_at":"2025-08-30T14:05:33.390Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-30T00:00:08.254Z","repositories_count":5479765,"commits_count":853310314,"contributors_count":31095240,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"ecosyste-ms/awesome","html_url":"https://github.com/ecosyste-ms/awesome","last_synced_at":"2025-09-04T13:25:15.057Z","status":"active","issues_count":12,"pull_requests_count":952,"avg_time_to_close_issue":198011.8,"avg_time_to_close_pull_request":106352.43157894736,"issues_closed_count":5,"pull_requests_closed_count":855,"pull_request_authors_count":2,"issue_authors_count":4,"avg_comments_per_issue":0.4166666666666667,"avg_comments_per_pull_request":0.782563025210084,"merged_pull_requests_count":106,"bot_issues_count":4,"bot_pull_requests_count":952,"past_year_issues_count":6,"past_year_pull_requests_count":527,"past_year_avg_time_to_close_issue":133823.25,"past_year_avg_time_to_close_pull_request":112902.99147121535,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":469,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.8333333333333334,"past_year_avg_comments_per_pull_request":0.7722960151802657,"past_year_bot_issues_count":4,"past_year_bot_pull_requests_count":527,"past_year_merged_pull_requests_count":58,"created_at":"2024-01-20T22:34:17.584Z","updated_at":"2025-09-04T13:25:15.058Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Fawesome/issues","issue_labels_count":{"enhancement":4,"good first issue":4,"help wanted":4,"dependencies":4,"ruby":4,"bug":2,"question":1},"pull_request_labels_count":{"dependencies":937,"ruby":904,"docker":18,"github_actions":15},"issue_author_associations_count":{"MEMBER":6,"CONTRIBUTOR":4,"NONE":2},"pull_request_author_associations_count":{"CONTRIBUTOR":939,"NONE":13},"issue_authors":{"andrew":6,"dependabot[bot]":4,"bzg":1,"InHwanJin":1},"pull_request_authors":{"dependabot[bot]":937,"github-actions[bot]":15},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10086361,"issues_count":31286210,"pull_requests_count":96411606,"authors_count":10695498,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"dependencies":4,"ruby":4,"question":1},"past_year_pull_request_labels_count":{"dependencies":504,"ruby":485,"github_actions":11,"docker":8},"past_year_issue_author_associations_count":{"CONTRIBUTOR":4,"NONE":2},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":516,"NONE":3},"past_year_issue_authors":{"dependabot[bot]":4,"bzg":1,"InHwanJin":1},"past_year_pull_request_authors":{"dependabot[bot]":504,"github-actions[bot]":15},"maintainers":[{"login":"andrew","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andrew"}],"active_maintainers":[]},"events":{"total":{"IssuesEvent":1,"WatchEvent":17,"DeleteEvent":212,"IssueCommentEvent":181,"PushEvent":143,"PullRequestEvent":464,"ForkEvent":3,"CreateEvent":247},"last_year":{"IssuesEvent":1,"WatchEvent":17,"DeleteEvent":212,"IssueCommentEvent":181,"PushEvent":143,"PullRequestEvent":464,"ForkEvent":3,"CreateEvent":247}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2024-01-04T18:43:22.222Z","updated_at":"2024-01-04T18:43:22.222Z","repository_link":"https://github.com/ecosyste-ms/awesome/blob/main/.github/workflows/ci.yml","dependencies":[{"id":15432073149,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15432073150,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v4.0.1","direct":true,"kind":"composite","optional":false},{"id":15432073151,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":15432073152,"package_name":"postgres","ecosystem":"actions","requirements":"14","direct":true,"kind":"docker","optional":false},{"id":15432073153,"package_name":"redis","ecosystem":"actions","requirements":"*","direct":true,"kind":"docker","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2024-01-04T18:43:22.273Z","updated_at":"2024-01-04T18:43:22.273Z","repository_link":"https://github.com/ecosyste-ms/awesome/blob/main/Dockerfile","dependencies":[{"id":15432073176,"package_name":"ruby","ecosystem":"docker","requirements":"3.3.0-alpine","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2024-01-04T18:43:22.322Z","updated_at":"2024-01-04T18:43:22.322Z","repository_link":"https://github.com/ecosyste-ms/awesome/blob/main/docker-compose.yml","dependencies":[{"id":15432073529,"package_name":"postgres","ecosystem":"docker","requirements":"14.1-alpine","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2024-01-04T18:43:22.480Z","updated_at":"2024-01-04T18:43:22.480Z","repository_link":"https://github.com/ecosyste-ms/awesome/blob/main/Gemfile","dependencies":[{"id":15432073542,"package_name":"rails","ecosystem":"rubygems","requirements":"~\u003e 7.1.1","direct":true,"kind":"runtime","optional":false},{"id":15432073543,"package_name":"sprockets-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432073544,"package_name":"pg","ecosystem":"rubygems","requirements":"~\u003e 1.5","direct":true,"kind":"runtime","optional":false},{"id":15432073545,"package_name":"puma","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432073546,"package_name":"jbuilder","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432073547,"package_name":"bootsnap","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432073548,"package_name":"sassc-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432073549,"package_name":"counter_culture","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432074428,"package_name":"faraday","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432074429,"package_name":"faraday-retry","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432074430,"package_name":"faraday-follow_redirects","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432074431,"package_name":"pagy","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432074432,"package_name":"pghero","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432075183,"package_name":"pg_query","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432075240,"package_name":"bootstrap","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432075241,"package_name":"rack-attack","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432075242,"package_name":"rack-attack-rate-limit","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432077059,"package_name":"rack-cors","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432077060,"package_name":"rswag-api","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078737,"package_name":"rswag-ui","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078746,"package_name":"jquery-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078747,"package_name":"faraday-typhoeus","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078902,"package_name":"sitemap_generator","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078904,"package_name":"sidekiq","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432078905,"package_name":"sidekiq-unique-jobs","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079273,"package_name":"sidekiq-status","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079659,"package_name":"google-protobuf","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079660,"package_name":"groupdate","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079661,"package_name":"simple_form","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079662,"package_name":"cff","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079663,"package_name":"tokenizers","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":15432079664,"package_name":"dotenv-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079665,"package_name":"web-console","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079666,"package_name":"shoulda-matchers","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079667,"package_name":"shoulda-context","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079668,"package_name":"webmock","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079669,"package_name":"mocha","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":15432079670,"package_name":"rails-controller-testing","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile.lock","sha":null,"kind":"lockfile","created_at":"2024-01-04T18:43:40.157Z","updated_at":"2024-01-04T18:43:40.157Z","repository_link":"https://github.com/ecosyste-ms/awesome/blob/main/Gemfile.lock","dependencies":[{"id":15432079671,"package_name":"actioncable","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079672,"package_name":"actionmailbox","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079673,"package_name":"actionmailer","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079674,"package_name":"actionpack","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079675,"package_name":"actiontext","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079676,"package_name":"actionview","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079677,"package_name":"activejob","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079678,"package_name":"activemodel","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079679,"package_name":"activerecord","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079680,"package_name":"activestorage","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079681,"package_name":"activesupport","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079682,"package_name":"addressable","ecosystem":"rubygems","requirements":"2.8.6","direct":false,"kind":"runtime","optional":false},{"id":15432079683,"package_name":"autoprefixer-rails","ecosystem":"rubygems","requirements":"10.4.16.0","direct":false,"kind":"runtime","optional":false},{"id":15432079684,"package_name":"base64","ecosystem":"rubygems","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079685,"package_name":"bigdecimal","ecosystem":"rubygems","requirements":"3.1.5","direct":false,"kind":"runtime","optional":false},{"id":15432079686,"package_name":"bindex","ecosystem":"rubygems","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079687,"package_name":"bootsnap","ecosystem":"rubygems","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":15432079688,"package_name":"bootstrap","ecosystem":"rubygems","requirements":"5.3.2","direct":false,"kind":"runtime","optional":false},{"id":15432079689,"package_name":"brpoplpush-redis_script","ecosystem":"rubygems","requirements":"0.1.3","direct":false,"kind":"runtime","optional":false},{"id":15432079690,"package_name":"builder","ecosystem":"rubygems","requirements":"3.2.4","direct":false,"kind":"runtime","optional":false},{"id":15432079691,"package_name":"cff","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079692,"package_name":"chronic_duration","ecosystem":"rubygems","requirements":"0.10.6","direct":false,"kind":"runtime","optional":false},{"id":15432079693,"package_name":"concurrent-ruby","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":15432079694,"package_name":"connection_pool","ecosystem":"rubygems","requirements":"2.4.1","direct":false,"kind":"runtime","optional":false},{"id":15432079695,"package_name":"counter_culture","ecosystem":"rubygems","requirements":"3.5.0","direct":false,"kind":"runtime","optional":false},{"id":15432079696,"package_name":"crack","ecosystem":"rubygems","requirements":"0.4.5","direct":false,"kind":"runtime","optional":false},{"id":15432079697,"package_name":"crass","ecosystem":"rubygems","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":15432079698,"package_name":"date","ecosystem":"rubygems","requirements":"3.3.4","direct":false,"kind":"runtime","optional":false},{"id":15432079699,"package_name":"debug","ecosystem":"rubygems","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":15432079700,"package_name":"dotenv","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079701,"package_name":"dotenv-rails","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079702,"package_name":"drb","ecosystem":"rubygems","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079703,"package_name":"erubi","ecosystem":"rubygems","requirements":"1.12.0","direct":false,"kind":"runtime","optional":false},{"id":15432079704,"package_name":"ethon","ecosystem":"rubygems","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":15432079705,"package_name":"execjs","ecosystem":"rubygems","requirements":"2.9.1","direct":false,"kind":"runtime","optional":false},{"id":15432079706,"package_name":"faraday","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079707,"package_name":"faraday-follow_redirects","ecosystem":"rubygems","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":15432079708,"package_name":"faraday-net_http","ecosystem":"rubygems","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":15432079709,"package_name":"faraday-retry","ecosystem":"rubygems","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079710,"package_name":"faraday-typhoeus","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079711,"package_name":"ffi","ecosystem":"rubygems","requirements":"1.16.3","direct":false,"kind":"runtime","optional":false},{"id":15432079712,"package_name":"globalid","ecosystem":"rubygems","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":15432079713,"package_name":"google-protobuf","ecosystem":"rubygems","requirements":"3.25.1","direct":false,"kind":"runtime","optional":false},{"id":15432079714,"package_name":"groupdate","ecosystem":"rubygems","requirements":"6.4.0","direct":false,"kind":"runtime","optional":false},{"id":15432079715,"package_name":"hashdiff","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079716,"package_name":"i18n","ecosystem":"rubygems","requirements":"1.14.1","direct":false,"kind":"runtime","optional":false},{"id":15432079717,"package_name":"io-console","ecosystem":"rubygems","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":15432079718,"package_name":"irb","ecosystem":"rubygems","requirements":"1.11.0","direct":false,"kind":"runtime","optional":false},{"id":15432079719,"package_name":"jbuilder","ecosystem":"rubygems","requirements":"2.11.5","direct":false,"kind":"runtime","optional":false},{"id":15432079720,"package_name":"jquery-rails","ecosystem":"rubygems","requirements":"4.6.0","direct":false,"kind":"runtime","optional":false},{"id":15432079721,"package_name":"json_schema","ecosystem":"rubygems","requirements":"0.20.9","direct":false,"kind":"runtime","optional":false},{"id":15432079722,"package_name":"language_list","ecosystem":"rubygems","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":15432079723,"package_name":"loofah","ecosystem":"rubygems","requirements":"2.22.0","direct":false,"kind":"runtime","optional":false},{"id":15432079724,"package_name":"mail","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079725,"package_name":"marcel","ecosystem":"rubygems","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":15432079726,"package_name":"mini_mime","ecosystem":"rubygems","requirements":"1.1.5","direct":false,"kind":"runtime","optional":false},{"id":15432079727,"package_name":"minitest","ecosystem":"rubygems","requirements":"5.20.0","direct":false,"kind":"runtime","optional":false},{"id":15432079728,"package_name":"mocha","ecosystem":"rubygems","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079729,"package_name":"msgpack","ecosystem":"rubygems","requirements":"1.7.2","direct":false,"kind":"runtime","optional":false},{"id":15432079730,"package_name":"mutex_m","ecosystem":"rubygems","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079731,"package_name":"net-imap","ecosystem":"rubygems","requirements":"0.4.9","direct":false,"kind":"runtime","optional":false},{"id":15432079732,"package_name":"net-pop","ecosystem":"rubygems","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079733,"package_name":"net-protocol","ecosystem":"rubygems","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":15432079734,"package_name":"net-smtp","ecosystem":"rubygems","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":15432079735,"package_name":"nio4r","ecosystem":"rubygems","requirements":"2.7.0","direct":false,"kind":"runtime","optional":false},{"id":15432079736,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":15432079737,"package_name":"numerizer","ecosystem":"rubygems","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":15432079738,"package_name":"pagy","ecosystem":"rubygems","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079739,"package_name":"pg","ecosystem":"rubygems","requirements":"1.5.4","direct":false,"kind":"runtime","optional":false},{"id":15432079740,"package_name":"pg_query","ecosystem":"rubygems","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":15432079741,"package_name":"pghero","ecosystem":"rubygems","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":15432079742,"package_name":"popper_js","ecosystem":"rubygems","requirements":"2.11.8","direct":false,"kind":"runtime","optional":false},{"id":15432079743,"package_name":"psych","ecosystem":"rubygems","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079744,"package_name":"public_suffix","ecosystem":"rubygems","requirements":"5.0.4","direct":false,"kind":"runtime","optional":false},{"id":15432079745,"package_name":"puma","ecosystem":"rubygems","requirements":"6.4.1","direct":false,"kind":"runtime","optional":false},{"id":15432079746,"package_name":"racc","ecosystem":"rubygems","requirements":"1.7.3","direct":false,"kind":"runtime","optional":false},{"id":15432079747,"package_name":"rack","ecosystem":"rubygems","requirements":"3.0.8","direct":false,"kind":"runtime","optional":false},{"id":15432079748,"package_name":"rack-attack","ecosystem":"rubygems","requirements":"6.7.0","direct":false,"kind":"runtime","optional":false},{"id":15432079749,"package_name":"rack-attack-rate-limit","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079750,"package_name":"rack-cors","ecosystem":"rubygems","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":15432079751,"package_name":"rack-session","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":15432079752,"package_name":"rack-test","ecosystem":"rubygems","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079753,"package_name":"rackup","ecosystem":"rubygems","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079754,"package_name":"rails","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079755,"package_name":"rails-controller-testing","ecosystem":"rubygems","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":15432079756,"package_name":"rails-dom-testing","ecosystem":"rubygems","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079757,"package_name":"rails-html-sanitizer","ecosystem":"rubygems","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":15432079758,"package_name":"railties","ecosystem":"rubygems","requirements":"7.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079759,"package_name":"rake","ecosystem":"rubygems","requirements":"13.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079760,"package_name":"rb_sys","ecosystem":"rubygems","requirements":"0.9.86","direct":false,"kind":"runtime","optional":false},{"id":15432079761,"package_name":"rdoc","ecosystem":"rubygems","requirements":"6.6.2","direct":false,"kind":"runtime","optional":false},{"id":15432079762,"package_name":"redis","ecosystem":"rubygems","requirements":"5.0.8","direct":false,"kind":"runtime","optional":false},{"id":15432079763,"package_name":"redis-client","ecosystem":"rubygems","requirements":"0.19.1","direct":false,"kind":"runtime","optional":false},{"id":15432079764,"package_name":"reline","ecosystem":"rubygems","requirements":"0.4.1","direct":false,"kind":"runtime","optional":false},{"id":15432079765,"package_name":"rexml","ecosystem":"rubygems","requirements":"3.2.6","direct":false,"kind":"runtime","optional":false},{"id":15432079766,"package_name":"rswag-api","ecosystem":"rubygems","requirements":"2.13.0","direct":false,"kind":"runtime","optional":false},{"id":15432079767,"package_name":"rswag-ui","ecosystem":"rubygems","requirements":"2.13.0","direct":false,"kind":"runtime","optional":false},{"id":15432079768,"package_name":"ruby2_keywords","ecosystem":"rubygems","requirements":"0.0.5","direct":false,"kind":"runtime","optional":false},{"id":15432079769,"package_name":"sassc","ecosystem":"rubygems","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":15432079770,"package_name":"sassc-rails","ecosystem":"rubygems","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":15432079771,"package_name":"shoulda-context","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":15432079772,"package_name":"shoulda-matchers","ecosystem":"rubygems","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":15432079773,"package_name":"sidekiq","ecosystem":"rubygems","requirements":"7.2.0","direct":false,"kind":"runtime","optional":false},{"id":15432079774,"package_name":"sidekiq-status","ecosystem":"rubygems","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":15432079775,"package_name":"sidekiq-unique-jobs","ecosystem":"rubygems","requirements":"8.0.5","direct":false,"kind":"runtime","optional":false},{"id":15432079776,"package_name":"simple_form","ecosystem":"rubygems","requirements":"5.3.0","direct":false,"kind":"runtime","optional":false},{"id":15432079777,"package_name":"sitemap_generator","ecosystem":"rubygems","requirements":"6.3.0","direct":false,"kind":"runtime","optional":false},{"id":15432079778,"package_name":"sprockets","ecosystem":"rubygems","requirements":"4.2.1","direct":false,"kind":"runtime","optional":false},{"id":15432079779,"package_name":"sprockets-rails","ecosystem":"rubygems","requirements":"3.4.2","direct":false,"kind":"runtime","optional":false},{"id":15432079780,"package_name":"stringio","ecosystem":"rubygems","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":15432079781,"package_name":"thor","ecosystem":"rubygems","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":15432079782,"package_name":"tilt","ecosystem":"rubygems","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":15432079783,"package_name":"timeout","ecosystem":"rubygems","requirements":"0.4.1","direct":false,"kind":"runtime","optional":false},{"id":15432079784,"package_name":"tokenizers","ecosystem":"rubygems","requirements":"0.4.3","direct":false,"kind":"runtime","optional":false},{"id":15432079785,"package_name":"typhoeus","ecosystem":"rubygems","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":15432079786,"package_name":"tzinfo","ecosystem":"rubygems","requirements":"2.0.6","direct":false,"kind":"runtime","optional":false},{"id":15432079787,"package_name":"web-console","ecosystem":"rubygems","requirements":"4.2.1","direct":false,"kind":"runtime","optional":false},{"id":15432079788,"package_name":"webmock","ecosystem":"rubygems","requirements":"3.19.1","direct":false,"kind":"runtime","optional":false},{"id":15432079789,"package_name":"webrick","ecosystem":"rubygems","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":15432079790,"package_name":"websocket-driver","ecosystem":"rubygems","requirements":"0.7.6","direct":false,"kind":"runtime","optional":false},{"id":15432079791,"package_name":"websocket-extensions","ecosystem":"rubygems","requirements":"0.1.5","direct":false,"kind":"runtime","optional":false},{"id":15432079792,"package_name":"zeitwerk","ecosystem":"rubygems","requirements":"2.6.12","direct":false,"kind":"runtime","optional":false},{"id":15432079793,"package_name":"bundler","ecosystem":"rubygems","requirements":"2.5.3","direct":false,"kind":"runtime","optional":false}]}],"score":4.653960350157523,"created_at":"2025-09-04T15:51:04.591Z","updated_at":"2025-10-07T08:13:30.481Z","avatar_url":"https://github.com/ecosyste-ms.png","language":"Ruby","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://opencollective.com/ecosystems","https://github.com/sponsors/andrew"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["sequences","climate-science","mesh","interpretability","benchmarking","imaging","scheduling","interactive","optim","agents"],"project_url":"https://science.ecosyste.ms/api/v1/projects/31651","html_url":"https://science.ecosyste.ms/projects/31651","bibtex_url":"https://science.ecosyste.ms/projects/31651/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/31651/export.apalike"}