{"id":19278153,"url":"https://github.com/r-lib/r6","last_synced_at":"2025-05-14T00:10:09.975Z","repository":{"id":16763360,"uuid":"19521307","full_name":"r-lib/R6","owner":"r-lib","description":"Encapsulated object-oriented programming for R","archived":false,"fork":false,"pushed_at":"2025-03-12T17:06:11.000Z","size":15845,"stargazers_count":420,"open_issues_count":56,"forks_count":58,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-04-13T20:17:26.365Z","etag":null,"topics":["r"],"latest_commit_sha":null,"homepage":"https://R6.r-lib.org","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r-lib.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-07T04:33:54.000Z","updated_at":"2025-04-13T04:30:10.000Z","dependencies_parsed_at":"2022-08-07T08:15:33.515Z","dependency_job_id":"955adef1-1a00-4ac0-a350-5237e5db6ae8","html_url":"https://github.com/r-lib/R6","commit_stats":{"total_commits":530,"total_committers":18,"mean_commits":"29.444444444444443","dds":"0.17169811320754713","last_synced_commit":"e97cca79f5b9eef029330ca45b765cdc9e249f29"},"previous_names":["wch/r6"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-lib%2FR6","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-lib%2FR6/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-lib%2FR6/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r-lib%2FR6/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r-lib","download_url":"https://codeload.github.com/r-lib/R6/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248774961,"owners_count":21159534,"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":["r"],"created_at":"2024-11-09T21:08:29.030Z","updated_at":"2025-04-13T20:17:33.286Z","avatar_url":"https://github.com/r-lib.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"R6: Encapsulated object-oriented programming for R \u003cimg src='man/figures/logo.png' align=\"right\" width=\"120\" /\u003e\n==================================================\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/r-lib/R6/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/R6/actions)\n\u003c!-- badges: end --\u003e\n\nR6 is an implementation of encapsulated object-oriented programming for R, and is a simpler, faster, lighter-weight alternative to R's built-in reference classes. This style of programming is also sometimes referred to as classical object-oriented programming.\n\nSome features of R6:\n\n* R6 objects have reference semantics.\n* R6 cleanly supports inheritance across packages.\n* R6 classes have public and private members.\n\nIn contrast to R's reference classes, R6 is not built on the S4 class system, so it does not require the *methods* package. Unlike reference classes, R6 classes can be cleanly inherited across different packages.\n\nSee the [Introduction](https://r6.r-lib.org/articles/Introduction.html) article for usage examples.\n\n\n## Installation\n\nTo install R6 from CRAN:\n\n```R\ninstall.packages('R6')\n```\n\nTo install the development version (requires the devtools package):\n\n```R\ndevtools::install_github('r-lib/R6', build_vignettes = FALSE)\n```\n\n\n## Documentation\n\n* [Introduction to R6](https://r6.r-lib.org/articles/Introduction.html)\n* [Debugging methods in R6 objects](https://r6.r-lib.org/articles/Debugging.html)\n* [Performance tests](https://r6.r-lib.org/articles/Performance.html) - Speed and memory comparisons of R6 classes and reference classes.\n* [Portable R6 classes](https://r6.r-lib.org/articles/Portable.html) - Inheritance across different packages.\n\n\n### Why R6?\n\nWhy the name R6? When R's reference classes were introduced, some users, following the names of R's existing class systems S3 and S4, called the new class system R5 in jest. Although reference classes are not actually called R5, the name of this package and its classes takes inspiration from that name.\n\nThe name R5 was also a code-name used for a different object system started by Simon Urbanek, meant to solve some issues with S4 relating to syntax and performance. However, the R5 branch was shelved after a little development, and it was never released.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-lib%2Fr6","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr-lib%2Fr6","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr-lib%2Fr6/lists"}