
testthat - Unit Testing for R
Software testing is important, but, in part because it is frustrating and boring, many of us avoid it. 'testthat' is a testing framework for R that is easy to learn and use, and integrates with your existing 'workflow'.
Last updated
unit-testingcpp
21.87 score 927 stars 455 dependents 100k scripts 953k downloads
rlang - Functions for Base Types and Core R and 'Tidyverse' Features
A toolbox for working with base types, core R features like the condition system, and core 'Tidyverse' features like tidy evaluation.
Last updated
20.99 score 572 stars 17k dependents 14k scripts 2.4M downloadshttr - Tools for Working with URLs and HTTP
Useful tools for working with HTTP organised by HTTP verbs (GET(), POST(), etc). Configuration functions make it easy to control additional request components (authenticate(), add_headers() and so on).
Last updated
apicurlhttp
20.70 score 982 stars 4.0k dependents 37k scripts 1.2M downloads
fs - Cross-Platform File System Operations Based on 'libuv'
A cross-platform interface to file system operations, built on top of the 'libuv' C library.
Last updated
filesystemlibuvlibuv1cpp
20.59 score 382 stars 5.9k dependents 12k scripts 1.6M downloads
devtools - Tools to Make Developing R Packages Easier
Collection of package development tools.
Last updated
package-creationquarto
20.23 score 2.5k stars 144 dependents 71k scripts 317k downloads
vctrs - Vector Helpers
Defines new notions of prototype and size that are used to provide tools for consistent and well-founded type-coercion and size-recycling, and are in turn connected to ideas of type- and size-stability useful for analysing function interfaces.
Last updated
s3-vectors
20.18 score 301 stars 15k dependents 1.3k scripts 2.1M downloads
scales - Scale Functions for Visualization
Graphical scales map data to aesthetics, and provide methods for automatically determining breaks and labels for axes and legends.
Last updated
ggplot2
19.87 score 446 stars 9.0k dependents 124k scripts 1.8M downloadshere - A Simpler Way to Find Your Files
Constructs paths to your project's files. Declare the relative path of a file within your project with 'i_am()'. Use the 'here()' function as a drop-in replacement for 'file.path()', it will always locate the files relative to your project root.
Last updated
project
19.77 score 433 stars 741 dependents 142k scripts 208k downloadscli - Helpers for Developing Command Line Interfaces
A suite of tools to build attractive command line interfaces ('CLIs'), from semantic elements: headings, lists, alerts, paragraphs, etc. Supports custom themes via a 'CSS'-like language. It also contains a number of lower level 'CLI' elements: rules, boxes, trees, and 'Unicode' symbols with 'ASCII' alternatives. It support ANSI colors and text styles as well.
Last updated
cli
19.74 score 711 stars 16k dependents 5.3k scripts 2.1M downloads
roxygen2 - In-Line Documentation for R
Generate your Rd documentation, 'NAMESPACE' file, and collation field using specially formatted comments. Writing documentation in-line with code makes it easier to keep your documentation up-to-date as your requirements change. 'roxygen2' is inspired by the 'Doxygen' system for C++.
Last updated
devtoolsdocumentationcpp
19.46 score 648 stars 229 dependents 2.6k scripts 299k downloadsxml2 - Parse XML
Bindings to 'libxml2' for working with XML data using a simple, consistent interface based on 'XPath' expressions. Also supports XML schema validation; for 'XSLT' transformations see the 'xslt' package.
Last updated
libxml2xmlcpp
19.22 score 223 stars 2.5k dependents 7.6k scripts 873k downloadscpp11 - A C++11 Interface for R's C Interface
Provides a header only, C++11 interface to R's C interface. Compared to other approaches 'cpp11' strives to be safe against long jumps from the C API as well as C++ exceptions, conform to normal R function semantics and supports interaction with 'ALTREP' vectors.
Last updated
cppcpp11
18.71 score 225 stars 13k dependents 834 scripts 1.7M downloadspillar - Coloured Formatting for Columns
Provides 'pillar' and 'colonnade' generics designed for formatting columns of data using the full range of colours provided by modern terminals.
Last updated
colour
18.40 score 182 stars 11k dependents 349 scripts 1.5M downloads
pkgdown - Make Static HTML Documentation for a Package
Generate an attractive and useful website from a source package. 'pkgdown' converts your documentation, vignettes, 'README', and more to 'HTML' making it easy to share information about your package online.
Last updated
documentation-toolquarto
18.21 score 771 stars 158 dependents 720 scripts 224k downloads
withr - Run Code 'With' Temporarily Modified Global State
A set of functions to run code 'with' safely and temporarily modified global state. Many of these functions were originally a part of the 'devtools' package, this provides a simple package with limited dependencies to provide access to these functions.
Last updated
18.20 score 178 stars 14k dependents 1.5k scripts 1.6M downloads
httr2 - Perform HTTP Requests and Process the Responses
Tools for creating and modifying HTTP requests, then performing them and processing the results. 'httr2' is a modern re-imagining of 'httr' that uses a pipe-based interface and solves more of the problems that API wrapping packages face.
Last updated
http
18.17 score 262 stars 1.7k dependents 5.5k scripts 385k downloadsyaml - Methods to Convert R Data to YAML and Back
Implements the 'libyaml' 'YAML' 1.1 parser and emitter (<https://pyyaml.org/wiki/LibYAML>) for R.
Last updated
yaml
18.06 score 169 stars 5.7k dependents 11k scripts 1.1M downloads
gtable - Arrange 'Grobs' in Tables
Tools to make it easier to work with "tables" of 'grobs'. The 'gtable' package defines a 'gtable' grob class that specifies a grid along with a list of grobs and their placement in the grid. Further the package makes it easy to manipulate and combine 'gtable' objects so that complex compositions can be built up sequentially.
Last updated
17.93 score 94 stars 8.7k dependents 5.2k scripts 1.3M downloadstidyselect - Select from a Set of Strings
A backend for the selecting functions of the 'tidyverse'. It makes it easy to implement select-like functions in your own packages in a way that is consistent with other 'tidyverse' interfaces for selection.
Last updated
17.91 score 129 stars 9.6k dependents 2.2k scripts 1.2M downloads
usethis - Automate Package and Project Setup
Automate package and project setup tasks that are otherwise performed manually. This includes setting up unit testing, test coverage, continuous integration, Git, 'GitHub', licenses, 'Rcpp', 'RStudio' projects, and more.
Last updated
githubsetup
17.82 score 910 stars 351 dependents 6.2k scripts 225k downloadsR6 - Encapsulated Classes with Reference Semantics
Creates classes with reference semantics, similar to R's built-in reference classes. Compared to reference classes, R6 classes are simpler and lighter-weight, and they are not built on S4 classes so they do not require the methods package. These classes allow public and private members, and they support inheritance, even when the classes are defined in different packages.
Last updated
17.75 score 424 stars 15k dependents 2.7k scripts 1.7M downloadslifecycle - Manage the Life Cycle of your Package Functions
Manage the life cycle of your exported functions with shared conventions, documentation badges, and user-friendly deprecation warnings.
Last updated
17.36 score 93 stars 16k dependents 140 scripts 2.0M downloadsrprojroot - Finding Files in Project Subdirectories
Robust, reliable and flexible paths to files below a project root. The 'root' of a project is defined as a directory that matches a certain criterion, e.g., it contains a certain regular file.
Last updated
17.13 score 150 stars 1.6k dependents 2.7k scripts 744k downloads
lintr - A 'Linter' for R Code
Checks adherence to a given style, syntax errors and possible semantic issues. Supports on the fly checking of R code edited with 'RStudio IDE', 'Emacs', 'Vim', 'Sublime Text', 'Atom' and 'Visual Studio Code'.
Last updated
linter
16.91 score 1.3k stars 36 dependents 1.3k scripts 67k downloadslater - Utilities for Scheduling Functions to Execute Later with Event Loops
Executes arbitrary R or C functions some time after the current time, after the R execution stack has emptied. The functions are scheduled in an event loop.
Last updated
event-loopcpp
16.79 score 150 stars 2.9k dependents 386 scripts 675k downloads
isoband - Generate Isolines and Isobands from Regularly Spaced Elevation Grids
A fast C++ implementation to generate contour lines (isolines) and contour polygons (isobands) from regularly spaced grids containing elevation data.
Last updated
cpp
16.58 score 132 stars 8.6k dependents 610 scripts 1.3M downloads
systemfonts - System Native Font Finding
Provides system native access to the font catalogue. As font handling varies between systems it is difficult to correctly locate installed fonts across different operating systems. The 'systemfonts' package provides bindings to the native libraries on Windows, macOS and Linux for finding font files that can then be used further by e.g. graphic devices. The main use is intended to be from compiled code but 'systemfonts' also provides access from R.
Last updated
fontsfontconfigfreetypecpp
16.54 score 95 stars 1.3k dependents 888 scripts 1.0M downloadscrayon - Colored Terminal Output
The crayon package is now superseded. Please use the 'cli' package for new projects. Colored terminal output on terminals that support 'ANSI' color and highlight codes. It also works in 'Emacs' 'ESS'. 'ANSI' color support is automatically detected. Colors and highlighting can be combined and nested. New styles can also be created easily. This package was inspired by the 'chalk' 'JavaScript' project.
Last updated
16.18 score 323 stars 5.1k dependents 1.8k scripts 1.1M downloads
mirai - Minimalist Async Evaluation Framework for R
Evaluates R expressions asynchronously and in parallel, locally or distributed across networks. An official parallel cluster type for R. Built on 'nanonext' and 'NNG', its non-polling, event-driven architecture scales from a laptop to thousands of processes across high-performance computing clusters and cloud platforms. Features FIFO scheduling with task cancellation and bounded queues, promises for reactive programming, 'OpenTelemetry' distributed tracing, and custom serialization for cross-language data types.
Last updated
asyncasynchronous-tasksconcurrencydistributed-computinghigh-performance-computingparallel-computing
16.18 score 326 stars 161 dependents 649 scripts 81k downloadsremotes - R Package Installation from Remote Repositories, Including 'GitHub'
Download and install R packages stored in 'GitHub', 'GitLab', 'Bitbucket', 'Bioconductor', or plain 'subversion' or 'git' repositories. This package provides the 'install_*' functions in 'devtools'. Indeed most of the code was copied over from 'devtools'.
Last updated
16.11 score 357 stars 113 dependents 6.8k scripts 423k downloadsgargle - Utilities for Working with Google APIs
Provides utilities for working with Google APIs <https://developers.google.com/apis-explorer>. This includes functions and classes for handling common credential types and for preparing, executing, and processing HTTP requests.
Last updated
authenticationgoogle
16.07 score 113 stars 200 dependents 379 scripts 454k downloads
styler - Non-Invasive Pretty Printing of R Code
Pretty-prints R code without changing the user's formatting intent.
Last updated
pretty-print
16.06 score 772 stars 69 dependents 1.1k scripts 63k downloadsmemoise - 'Memoisation' of Functions
Cache the results of a function so that when you call it again with the same arguments it returns the previously computed value.
Last updated
memoise
15.93 score 321 stars 6.0k dependents 1.3k scripts 1.0M downloads
progress - Terminal Progress Bars
Configurable Progress bars, they may include percentage, elapsed time, and/or the estimated completion time. They work in terminals, in 'Emacs' 'ESS', 'RStudio', 'Windows' 'Rgui' and the 'macOS' 'R.app'. The package also provides a 'C++' 'API', that works with or without 'Rcpp'.
Last updated
15.92 score 473 stars 3.3k dependents 3.8k scripts 764k downloadsprocessx - Execute and Control System Processes
Tools to run system processes in the background. It can check if a background process is running; wait on a background process to finish; get the exit status of finished processes; kill background processes. It can read the standard output and error of the processes, using non-blocking connections. 'processx' can poll a process for standard output or error, with a timeout. It can also poll several processes at once.
Last updated
15.92 score 243 stars 1.6k dependents 434 scripts 1.2M downloadscallr - Call R from R
It is sometimes useful to perform a computation in a separate R process, without affecting the current R process at all. This packages does exactly that.
Last updated
15.73 score 303 stars 1.3k dependents 373 scripts 1.1M downloads
ragg - Graphic Devices Based on AGG
Anti-Grain Geometry (AGG) is a high-quality and high-performance 2D drawing library. The 'ragg' package provides a set of graphic devices based on AGG to use as alternative to the raster devices provided through the 'grDevices' package.
Last updated
drawinggraphicsvector-graphicsfreetypelibpngtifflibjpeg-turbolibwebpcpp
15.67 score 180 stars 554 dependents 2.4k scripts 937k downloadsevaluate - Parsing and Evaluation Tools that Provide More Details than the Default
Parsing and evaluation tools that make it easy to recreate the command line behaviour of R.
Last updated
evaluationparsingrepl
15.65 score 139 stars 5.0k dependents 228 scripts 1.1M downloadspak - Another Approach to Package Installation
The goal of 'pak' is to make package installation faster and more reliable. In particular, it performs all HTTP operations in parallel, so metadata resolution and package downloads are fast. Metadata and package files are cached on the local disk as well. 'pak' has a dependency solver, so it finds version conflicts before performing the installation. This version of 'pak' supports CRAN, 'Bioconductor' and 'GitHub' packages as well.
Last updated
15.55 score 807 stars 184 dependents 550 scripts 314k downloadszip - Cross-Platform 'zip' Compression
Cross-Platform 'zip' Compression Library. A replacement for the 'zip' function, that does not require any additional external tools on any platform.
Last updated
15.48 score 98 stars 1.1k dependents 1.2k scripts 357k downloads
gert - Simple Git Client for R
Simple git client for R based on 'libgit2' <https://libgit2.org> with support for SSH and HTTPS remotes. All functions in 'gert' use basic R data types (such as vectors and data-frames) for their arguments and return values. User credentials are shared with command line 'git' through the git-credential store and ssh keys stored on disk or ssh-agent.
Last updated
15.46 score 162 stars 387 dependents 480 scripts 213k downloadssvglite - An 'SVG' Graphics Device
A graphics device for R that produces 'Scalable Vector Graphics'. 'svglite' is a fork of the older 'RSvgDevice' package.
Last updated
svglibpngcpp
15.40 score 200 stars 268 dependents 6.3k scripts 294k downloads
covr - Test Coverage for Packages
Track and report code coverage for your package and (optionally) upload the results to a coverage service like 'Codecov' <https://about.codecov.io> or 'Coveralls' <https://coveralls.io>. Code coverage is a measure of the amount of code being exercised by a set of tests. It is an indirect measure of test quality and completeness. This package is compatible with any testing methodology or framework and tracks coverage of both R code and compiled C/C++/FORTRAN code.
Last updated
codecovcoveragecoverage-reporttravis-ci
15.31 score 345 stars 14 dependents 2.8k scripts 205k downloads
gert - Simple Git Client for R
Simple git client for R based on 'libgit2' <https://libgit2.org> with support for SSH and HTTPS remotes. All functions in 'gert' use basic R data types (such as vectors and data-frames) for their arguments and return values. User credentials are shared with command line 'git' through the git-credential store and ssh keys stored on disk or ssh-agent.
Last updated
15.31 score 162 stars 384 dependents 353 scripts 205k downloadsprofvis - Interactive Visualizations for Profiling R Code
Interactive visualizations for profiling R code.
Last updated
15.25 score 315 stars 146 dependents 1.8k scripts 182k downloadsgh - 'GitHub' 'API'
Minimal client to access the 'GitHub' 'API'.
Last updated
githubgithub-api
15.21 score 232 stars 262 dependents 798 scripts 220k downloadsps - List, Query, Manipulate System Processes
List, query and manipulate all system processes, on 'Windows', 'Linux' and 'macOS'.
Last updated
14.98 score 83 stars 1.6k dependents 159 scripts 1.2M downloadsconflicted - An Alternative Conflict Resolution Strategy
R's default conflict management system gives the most recently loaded package precedence. This can make it hard to detect conflicts, particularly when they arise because a package update creates ambiguity that did not previously exist. 'conflicted' takes a different approach, making every conflict an error and forcing you to choose which function to use.
Last updated
conflicts
14.81 score 254 stars 155 dependents 8.7k scripts 1.8M downloadspkgload - Simulate Package Installation and Attach
Simulates the process of installing a package and then attaching it. This is a key part of the 'devtools' package as it allows you to rapidly iterate while developing a package.
Last updated
14.80 score 60 stars 614 dependents 229 scripts 1.0M downloadsgenerics - Common S3 Generics not Provided by Base R Methods Related to Model Fitting
In order to reduce potential package dependencies and conflicts, generics provides a number of commonly used S3 generics.
Last updated
14.45 score 60 stars 11k dependents 238 scripts 1.3M downloadsbit - Classes and Methods for Fast Memory-Efficient Boolean Selections
Provided are classes for boolean and skewed boolean vectors, fast boolean methods, fast unique and non-unique integer sorting, fast set operations on sorted and unsorted sets of integers, and foundations for ff (range index, compression, chunked processing).
Last updated
14.44 score 13 stars 3.6k dependents 200 scripts 740k downloadsrappdirs - Application Directories: Determine Where to Save Data, Caches, and Logs
An easy way to determine which directories on the users computer you should use to save data, caches and logs. A port of Python's 'Appdirs' (<https://github.com/ActiveState/appdirs>) to R.
Last updated
appdir
14.41 score 92 stars 6.4k dependents 89 scripts 1.1M downloadsrex - Friendly Regular Expressions
A friendly interface for the construction of regular expressions.
Last updated
14.38 score 335 stars 74 dependents 346 scripts 232k downloads
clock - Date-Time Types and Tools
Provides a comprehensive library for date-time manipulations using a new family of orthogonal date-time classes (durations, time points, zoned-times, and calendars) that partition responsibilities so that the complexities of time zones are only considered when they are really needed. Capabilities include: date-time parsing, formatting, arithmetic, extraction and updating of components, and rounding.
Last updated
cpp
14.37 score 110 stars 464 dependents 364 scripts 158k downloadssessioninfo - R Session Information
Query and print information about the current R session. It is similar to 'utils::sessionInfo()', but includes more information about packages, and where they were installed from.
Last updated
14.37 score 80 stars 246 dependents 6.4k scripts 207k downloadsslider - Sliding Window Functions
Provides type-stable rolling window functions over any R data type. Cumulative and expanding windows are also supported. For more advanced usage, an index can be used as a secondary vector that defines how sliding windows are to be created.
Last updated
14.29 score 315 stars 129 dependents 1.9k scripts 70k downloadsdesc - Manipulate DESCRIPTION Files
Tools to read, write, create, and manipulate DESCRIPTION files. It is intended for packages that create or manipulate other packages.
Last updated
14.24 score 125 stars 1.2k dependents 487 scripts 881k downloadsfastmap - Fast Data Structures
Fast implementation of data structures, including a key-value store, stack, and queue. Environments are commonly used as key-value stores in R, but every time a new key is used, it is added to R's global symbol table, causing a small amount of memory leakage. This can be problematic in cases where many different keys are used. Fastmap avoids this memory leak issue by implementing the map using data structures in C++.
Last updated
cpp
14.23 score 135 stars 6.2k dependents 142 scripts 1.1M downloadsgitcreds - Query 'git' Credentials from 'R'
Query, set, delete credentials from the 'git' credential store. Manage 'GitHub' tokens and other 'git' credentials. This package is to be used by other packages that need to authenticate to 'GitHub' and/or other 'git' repositories.
Last updated
credentialscredentials-helpergitgithub
14.07 score 30 stars 438 dependents 644 scripts 192k downloadspkgbuild - Find Tools Needed to Build R Packages
Provides functions used to build R packages. Locates compilers needed to build R packages on various platforms and ensures the PATH is configured appropriately so R can use them.
Last updated
13.92 score 77 stars 907 dependents 163 scripts 937k downloadstextshaping - Bindings to the 'HarfBuzz' and 'Fribidi' Libraries for Text Shaping
Provides access to the text shaping functionality in the 'HarfBuzz' library and the bidirectional algorithm in the 'Fribidi' library. 'textshaping' is a low-level utility package mainly for graphic devices that expands upon the font tool-set provided by the 'systemfonts' package.
Last updated
harfbuzzfreetypefribidicpp
13.90 score 20 stars 800 dependents 87 scripts 898k downloadscachem - Cache R Objects with Automatic Pruning
Key-value stores with automatic pruning. Caches can limit either their total size or the age of the oldest object (or both), automatically pruning objects to maintain the constraints.
Last updated
13.79 score 64 stars 6.0k dependents 127 scripts 1.1M downloadswaldo - Find Differences Between R Objects
Compare complex R objects and reveal the key differences. Designed particularly for use in testing packages where being able to quickly isolate key differences makes understanding test failures much easier.
Last updated
difftesting
13.77 score 301 stars 475 dependents 313 scripts 673k downloadsprettyunits - Pretty, Human Readable Formatting of Quantities
Pretty, human readable formatting of quantities. Time intervals: '1337000' -> '15d 11h 23m 20s'. Vague time intervals: '2674000' -> 'about a month ago'. Bytes: '1337' -> '1.34 kB'. Rounding: '99' with 3 significant digits -> '99.0' p-values: '0.00001' -> '<0.0001'. Colors: '#FF0000' -> 'red'. Quantities: '1239437' -> '1.24 M'.
Last updated
13.60 score 134 stars 3.6k dependents 101 scripts 780k downloadsbackports - Reimplementations of Functions Introduced Since R-3.0.0
Functions introduced or changed since R v3.0.0 are re-implemented in this package. The backports are conditionally exported in order to let R resolve the function name to either the implemented backport, or the respective base version, if available. Package developers can make use of new functions or arguments by selectively importing specific backports to support older installations.
Last updated
backports
13.58 score 66 stars 3.7k dependents 216 scripts 954k downloadspkgconfig - Private Configuration for 'R' Packages
Set configuration options on a per-package basis. Options set by a given package only apply to that package, other packages are unaffected.
Last updated
13.38 score 42 stars 12k dependents 43 scripts 1.3M downloadscommonmark - High Performance CommonMark and Github Markdown Rendering in R
The CommonMark specification <https://github.github.com/gfm/> defines a rationalized version of markdown syntax. This package uses the 'cmark' reference implementation for converting markdown text into various formats including html, latex and groff man. In addition it exposes the markdown parse tree in xml format. Also includes opt-in support for GFM extensions including tables, autolinks, and strikethrough text.
Last updated
cmarkcmark-gfmgfmmarkdown
13.36 score 101 stars 2.5k dependents 123 scripts 692k downloadscommonmark - High Performance CommonMark and Github Markdown Rendering in R
The CommonMark specification <https://github.github.com/gfm/> defines a rationalized version of markdown syntax. This package uses the 'cmark' reference implementation for converting markdown text into various formats including html, latex and groff man. In addition it exposes the markdown parse tree in xml format. Also includes opt-in support for GFM extensions including tables, autolinks, and strikethrough text.
Last updated
cmarkcmark-gfmgfmmarkdown
13.29 score 101 stars 2.5k dependents 106 scripts 689k downloadscoro - 'Coroutines' for R
Provides 'coroutines' for R, a family of functions that can be suspended and resumed later on. This includes 'async' functions (which await) and generators (which yield). 'Async' functions are based on the concurrency framework of the 'promises' package. Generators are based on a dependency free iteration protocol defined in 'coro' and are compatible with iterators from the 'reticulate' package.
Last updated
asynccoroutinesgeneratoriteratorpromisesreticulate
13.15 score 180 stars 96 dependents 1.2k scripts 31k downloads
nanonext - Lightweight Toolkit for Messaging, Concurrency and the Web
R binding for NNG (Nanomsg Next Gen), a successor to ZeroMQ. A toolkit for messaging, concurrency and the web. High-performance socket messaging over in-process, IPC, TCP, WebSocket and secure TLS transports implements 'Scalability Protocols', a standard for common communications patterns including publish/subscribe, request/reply and survey. A threaded concurrency framework with intuitive 'aio' objects that resolve automatically upon completion of asynchronous operations, and synchronisation primitives that allow R to wait on events signalled by concurrent threads. A unified HTTP server hosting REST endpoints, WebSocket connections and streaming on a single port, with a built-in HTTP client.
Last updated
concurrencyhttp-clienthttp-serveripc-messagemessaging-libraryrpcsocket-communicationsynchronization-primitivestcp-protocoltlswebsocketmbedtls
13.13 score 82 stars 169 dependents 86 scripts 84k downloadszeallot - Multiple, Unpacking, and Destructuring Assignment
Provides a %<-% operator to perform multiple, unpacking, and destructuring assignment in R. The operator unpacks the right-hand side of an assignment into multiple values and assigns these values to variables on the left-hand side of the assignment.
Last updated
destructuring-assignmentmultiple-assignmentpattern-matchingunpacking-assignment
13.07 score 272 stars 111 dependents 2.6k scripts 33k downloads
lobstr - Visualize R Data Structures with Trees
A set of tools for inspecting and understanding R data structures inspired by str(). Includes ast() for visualizing abstract syntax trees, ref() for showing shared references, cst() for showing call stack trees, and obj_size() for computing object sizes.
Last updated
cpp
12.97 score 314 stars 63 dependents 896 scripts 65k downloadsaskpass - Password Entry Utilities for R, Git, and SSH
Cross-platform utilities for prompting the user for credentials or a passphrase, for example to authenticate with a server or read a protected key. Includes native programs for MacOS and Windows, hence no 'tcltk' is required. Password entry can be invoked in two different ways: directly from R via the askpass() function, or indirectly as password-entry back-end for 'ssh-agent' or 'git-credential' via the SSH_ASKPASS and GIT_ASKPASS environment variables. Thereby the user can be prompted for credentials or a passphrase if needed when R calls out to git or ssh.
Last updated
12.75 score 88 stars 5.2k dependents 102 scripts 813k downloads
credentials - Tools for Managing SSH and Git Credentials
Setup and retrieve HTTPS and SSH credentials for use with 'git' and other services. For HTTPS remotes the package interfaces the 'git-credential' utility which 'git' uses to store HTTP usernames and passwords. For SSH remotes we provide convenient functions to find or generate appropriate SSH keys. The package both helps the user to setup a local git installation, and also provides a back-end for git/ssh client libraries to authenticate with existing user credentials.
Last updated
gitpasswordssh
12.49 score 75 stars 400 dependents 171 scripts 199k downloadsdownlit - Syntax Highlighting and Automatic Linking
Syntax highlighting of R code, specifically designed for the needs of 'RMarkdown' packages like 'pkgdown', 'hugodown', and 'bookdown'. It includes linking of function calls to their documentation on the web, and automatic translation of ANSI escapes in output to the equivalent HTML.
Last updated
syntax-highlighting
12.47 score 90 stars 172 dependents 460 scripts 182k downloadskeyring - Access the System Credential Store from R
Platform independent 'API' to access the operating system's credential store. Currently supports: 'Keychain' on 'macOS', Credential Store on 'Windows', the Secret Service 'API' on 'Linux', and simple, platform independent stores implemented with environment variables or encrypted files. Additional storage back-ends can be added easily.
Last updated
keyringsecuritylibsecretglib
12.45 score 203 stars 76 dependents 964 scripts 24k downloadssodium - A Modern and Easy-to-Use Crypto Library
Bindings to 'libsodium' <https://doc.libsodium.org/>: a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more. Sodium uses curve25519, a state-of-the-art Diffie-Hellman function by Daniel Bernstein, which has become very popular after it was discovered that the NSA had backdoored Dual EC DRBG.
Last updated
libsodium
12.33 score 72 stars 60 dependents 282 scripts 37k downloadssodium - A Modern and Easy-to-Use Crypto Library
Bindings to 'libsodium' <https://doc.libsodium.org/>: a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more. Sodium uses curve25519, a state-of-the-art Diffie-Hellman function by Daniel Bernstein, which has become very popular after it was discovered that the NSA had backdoored Dual EC DRBG.
Last updated
libsodium
12.22 score 72 stars 60 dependents 238 scripts 34k downloadsellipsis - Tools for Working with ...
The ellipsis is a powerful tool for extending functions. Unfortunately this power comes at a cost: misspelled arguments will be silently ignored. The ellipsis package provides a collection of functions to catch problems and alert the user.
Last updated
dot-dot-dotellipsis
12.15 score 139 stars 168 dependents 97 scripts 261k downloadsrcmdcheck - Run 'R CMD check' from 'R' and Capture Results
Run 'R CMD check' from 'R' and capture the results of the individual checks. Supports running checks in the background, timeouts, pretty printing and comparing check results.
Last updated
12.12 score 122 stars 156 dependents 143 scripts 178k downloads
sparsevctrs - Sparse Vectors for Use in Data Frames
Provides sparse vectors powered by ALTREP (Alternative Representations for R Objects) that behave like regular vectors, and can thus be used in data frames. Also provides tools to convert between sparse matrices and data frames with sparse columns and functions to interact with sparse vectors.
Last updated
12.05 score 26 stars 489 dependents 30 scripts 165k downloadsbrio - Basic R Input Output
Functions to handle basic input output, these functions always read and write UTF-8 (8-bit Unicode Transformation Format) files and provide more explicit control over line endings.
Last updated
12.02 score 59 stars 536 dependents 47 scripts 582k downloadsbench - High Precision Timing of R Expressions
Tools to accurately benchmark and analyze execution times for R expressions.
Last updated
11.98 score 255 stars 11 dependents 1.3k scripts 23k downloadsotel - OpenTelemetry R API
High-quality, ubiquitous, and portable telemetry to enable effective observability. OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior. This package implements the OpenTelemetry API: <https://opentelemetry.io/docs/specs/otel/>. Use this package as a dependency if you want to instrument your R package for OpenTelemetry.
Last updated
11.90 score 20 stars 2.9k dependents 9 scripts 641k downloadsvdiffr - Visual Regression Testing and Graphical Diffing
An extension to the 'testthat' package that makes it easy to add graphical unit tests. It provides a Shiny application to manage the test cases.
Last updated
ggplot2graphicstestthatlibpngcpp
11.65 score 196 stars 5 dependents 392 scripts 88k downloadsjose - JavaScript Object Signing and Encryption
Read and write JSON Web Keys (JWK, rfc7517), generate and verify JSON Web Signatures (JWS, rfc7515) and encode/decode JSON Web Tokens (JWT, rfc7519) <https://datatracker.ietf.org/wg/jose/documents/>. These standards provide modern signing and encryption formats that are natively supported by browsers via the JavaScript WebCryptoAPI <https://www.w3.org/TR/webcrypto/#jose>, and used by services like OAuth 2.0, LetsEncrypt, and Github Apps.
Last updated
11.59 score 54 stars 57 dependents 98 scripts 108k downloadsarchive - Multi-Format Archive and Compression Support
Bindings to 'libarchive' <http://www.libarchive.org> the Multi-format archive and compression library. Offers R connections and direct extraction for many archive formats including 'tar', 'ZIP', '7-zip', 'RAR', 'CAB' and compression formats including 'gzip', 'bzip2', 'compress', 'lzma' and 'xz'.
Last updated
compressionconnectionslibarchivecpp
11.56 score 147 stars 24 dependents 642 scripts 16k downloadsmockery - Mocking Library for R
The two main functionalities of this package are creating mock objects (functions) and selectively intercepting calls to a given function that originate in some other function. It can be used with any testing framework available for R. Mock objects can be injected with either this package's own stub() function or a similar with_mocked_binding() facility present in the 'testthat' package.
Last updated
11.53 score 104 stars 4 dependents 844 scripts 59k downloadstzdb - Time Zone Database Information
Provides an up-to-date copy of the Internet Assigned Numbers Authority (IANA) Time Zone Database. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight saving time rules. Additionally, this package provides a C++ interface for working with the 'date' library. 'date' provides comprehensive support for working with dates and date-times, which this package exposes to make it easier for other R packages to utilize. Headers are provided for calendar specific calculations, along with a limited interface for time zone manipulations.
Last updated
cpp
11.33 score 8 stars 2.7k dependents 48 scripts 690k downloadsnanoparquet - Read and Write 'Parquet' Files
Self-sufficient reader and writer for flat 'Parquet' files. Can read most 'Parquet' data types. Can write many 'R' data types, including factors and temporal types. See docs for limitations.
Last updated
parquetcpp
11.15 score 83 stars 25 dependents 317 scripts 24k downloads
marquee - Markdown Parser and Renderer for R Graphics
Provides the mean to parse and render markdown text with grid along with facilities to define the styling of the text.
Last updated
cpp
11.04 score 98 stars 6 dependents 191 scripts 10k downloadsrematch2 - Tidy Output from Regular Expression Matching
Wrappers on 'regexpr' and 'gregexpr' to return the match results in tidy data frames.
Last updated
10.98 score 46 stars 200 dependents 37 scripts 373k downloadsfilelock - Portable File Locking
Place an exclusive or shared lock on a file. It uses 'LockFile' on Windows and 'fcntl' locks on Unix-like systems.
Last updated
10.93 score 44 stars 917 dependents 74 scripts 96k downloadsgmailr - Access the 'Gmail' 'RESTful' API
An interface to the 'Gmail' 'RESTful' API. Allows access to your 'Gmail' messages, threads, drafts and labels.
Last updated
10.86 score 237 stars 1 dependents 363 scripts 3.4k downloadslog4r - A Fast and Lightweight Logging System for R, Based on 'log4j'
The log4r package is meant to provide a fast, lightweight, object-oriented approach to logging in R based on the widely-emulated 'log4j' system and etymology.
Last updated
logging
10.77 score 100 stars 16 dependents 310 scripts 5.3k downloadsurlchecker - Run CRAN URL Checks from Older R Versions
Provide the URL checking tools available in R 4.1+ as a package for earlier versions of R. Also uses concurrent requests so can be much faster than the serial versions.
Last updated
10.34 score 45 stars 151 dependents 23 scripts 156k downloadspkgdepends - Package Dependency Resolution and Downloads
Find recursive dependencies of 'R' packages from various sources. Solve the dependencies to obtain a consistent set of packages to install. Download packages, and install them. It supports packages on 'CRAN', 'Bioconductor' and other 'CRAN-like' repositories, 'GitHub', package 'URLs', and local package trees and files. It caches metadata and package files via the 'pkgcache' package, and performs all 'HTTP' requests, downloads, builds and installations in parallel. 'pkgdepends' is the workhorse of the 'pak' package.
Last updated
10.29 score 133 stars 4 dependents 92 scripts 8.6k downloadspkgcache - Cache 'CRAN'-Like Metadata and R Packages
Metadata and package cache for CRAN-like repositories. This is a utility package to be used by package management tools that want to take advantage of caching.
Last updated
10.16 score 30 stars 7 dependents 402 scripts 10k downloadsymlthis - Write 'YAML' for 'R Markdown', 'bookdown', 'blogdown', and More
Write 'YAML' front matter for R Markdown and related documents. Work with 'YAML' objects more naturally and write the resulting 'YAML' to your clipboard or to 'YAML' files related to your project.
Last updated
9.88 score 168 stars 13 dependents 193 scripts 950 downloadsxopen - Open System Files, 'URLs', Anything
Cross platform solution to open files, directories or 'URLs' with their associated programs.
Last updated
9.76 score 34 stars 160 dependents 39 scripts 180k downloadspingr - Check if a Remote Computer is Up
Check if a remote computer is up. It can either just call the system ping command, or check a specified TCP port.
Last updated
dnsis-onlinepingtcpglibc
9.74 score 38 stars 22 dependents 132 scripts 42k downloadscarrier - Isolate Functions for Remote Execution
Sending functions to remote processes can be wasteful of resources because they carry their environments with them. With the carrier package, it is easy to create functions that are isolated from their environment. These isolated functions, also called crates, print at the console with their total size and can be easily tested locally before being sent to a remote.
Last updated
9.63 score 70 stars 8 dependents 292 scripts 17k downloadstreesitter.r - 'R' Grammar for 'Tree-Sitter'
Provides bindings to an 'R' grammar for 'Tree-sitter', to be used alongside the 'treesitter' package. 'Tree-sitter' builds concrete syntax trees for source files of any language, and can efficiently update those syntax trees as the source file is edited.
Last updated
9.29 score 140 stars 8 dependents 53 scripts 2.7k downloadsxmlparsedata - Parse Data of 'R' Code as an 'XML' Tree
Convert the output of 'utils::getParseData()' to an 'XML' tree, that one can search via 'XPath', and easier to manipulate in general.
Last updated
xml
9.19 score 24 stars 40 dependents 25 scripts 61k downloadswebfakes - Fake Web Apps for HTTP Testing
Create a web app that makes it easier to test web clients without using the internet. It includes a web app framework with path matching, parameters and templates. Can parse various 'HTTP' request bodies. Can send 'JSON' data or files from the disk. Includes a web app that implements the 'httpbin.org' web service.
Last updated
8.59 score 62 stars 1 dependents 21 scripts 37k downloadswhoami - Username, Full Name, Email Address, 'GitHub' Username of the Current User
Look up the username and full name of the current user, the current user's email address and 'GitHub' username, using various sources of system and configuration information.
Last updated
8.35 score 20 stars 32 dependents 34 scripts 17k downloadsavailable - Check if the Title of a Package is Available, Appropriate and Interesting
Check if a given package name is available to use. It checks the name's validity. Checks if it is used on 'GitHub', 'CRAN' and 'Bioconductor'. Checks for unintended meanings by querying 'Wiktionary' and Wikipedia.
Last updated
unconfunconf17
8.29 score 144 stars 3 dependents 140 scripts 1.2k downloadsdebugme - Debug R Packages
Specify debug messages as special string constants, and control debugging of packages via environment variables.
Last updated
debugging-tool
8.04 score 153 stars 5 dependents 17 scripts 11k downloadsclisymbols - Unicode Symbols at the R Prompt
A small subset of Unicode symbols, that are useful when building command line applications. They fall back to alternatives on terminals that do not support Unicode. Many symbols were taken from the 'figures' 'npm' package (see <https://github.com/sindresorhus/figures>).
Last updated
7.80 score 83 stars 21 dependents 31 scripts 7.7k downloadsprettycode - Pretty Print R Code in the Terminal
Replace the standard print method for functions with one that performs syntax highlighting, using ANSI colors, if the terminal supports them.
Last updated
7.48 score 106 stars 4 dependents 13 scripts 6.0k downloadsasciicast - Create 'Ascii' Screen Casts from R Scripts
Record 'asciicast' screen casts from R scripts. Convert them to animated SVG images, to be used in 'README' files, or blog posts. Includes 'asciinema-player' as an 'HTML' widget, and an 'asciicast' 'knitr' engine, to embed 'ascii' screen casts in 'Rmarkdown' documents.
Last updated
7.33 score 244 stars 13 scripts 6.4k downloadsotelsdk - R SDK and Exporters for OpenTelemetry
OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior. This package contains the OpenTelemetry SDK, and exporters. Use this package to export traces, metrics, logs from instrumented R code. Use the otel package to instrument your R code for OpenTelemetry.
Last updated
protobufcurlcpp
7.25 score 16 stars 7 scripts 35k downloadsdecor - Retrieve Code Decorations
Retrieves code comment decorations for C++ languages of the form '\\ [[xyz]]', which are used for automated wrapping of C++ functions.
Last updated
cpp
7.22 score 3 stars 4 dependents 69 scripts 22k downloads
sloop - Helpers for 'OOP' in R
A collection of helper functions designed to help you to better understand object oriented programming in R, particularly using 'S3'.
Last updated
r6s3s4
7.10 score 104 stars 1 dependents 266 scripts 605 downloadsroxygen2md - 'Roxygen' to 'Markdown'
Converts elements of 'roxygen' documentation to 'markdown'.
Last updated
documentationmarkdown
7.05 score 69 stars 2 dependents 15 scripts 338 downloadsdiffviewer - HTML Widget to Show File Differences
A HTML widget that shows differences between files (text, images, and data frames).
Last updated
diffhtmlwidgets
6.52 score 66 stars 19 scripts 18k downloadswatcher - Watch the File System for Changes
R binding for 'libfswatch', a file system monitoring library. Watch files, or directories recursively, for changes in the background. Log activity, or call an R function, upon every change event.
Last updated
filesystem-eventscpp
6.34 score 37 stars 9 scripts 13k downloadsliteq - Lightweight Portable Message Queue Using 'SQLite'
Temporary and permanent message queues for R. Built on top of 'SQLite' databases. 'SQLite' provides locking, and makes it possible to detect crashed consumers. Crashed jobs can be automatically marked as "failed", or put in the queue again, potentially a limited number of times.
Last updated
5.97 score 57 stars 1 dependents 18 scripts 630 downloads
debrief - Text-Based Summaries for 'profvis' Profiling Data
Provides text-based summaries and analysis tools for 'profvis' profiling output. Designed for terminal workflows and artificial intelligence (AI) agent consumption, offering views including hotspot analysis, call trees, source context, caller/callee relationships, and memory allocation breakdowns.
Last updated
5.54 score 14 stars 4 scripts 559 downloads
Rapp - Easily Build Command Line Applications
Run simple 'R' scripts as command line applications, with automatic robust and convenient support for command line arguments. This package provides 'Rapp', an alternative 'R' front-end similar to 'Rscript', that enables this.
Last updated
5.54 score 138 stars 5 scripts 376 downloadscleancall - C Resource Cleanup via Exit Handlers
Wrapper of .Call() that runs exit handlers to clean up C resources. Helps managing C (non-R) resources while using the R API.
Last updated
5.40 score 21 stars 1 dependents 1 scripts 813 downloadscliapp - Create Rich Command Line Applications
Create rich command line applications, with colors, headings, lists, alerts, progress bars, etc. It uses CSS for custom themes. This package is now superseded by the 'cli' package. Please use 'cli' instead in new projects.
Last updated
5.39 score 61 stars 375 scripts 1.1k downloadsshowimage - Show an Image on an 'R' Graphics Device
Sometimes it is handy to be able to view an image file on an 'R' graphics device. This package just does that. Currently it supports 'PNG' files.
Last updated
5.25 score 8 stars 2 dependents 12 scripts 6.1k downloadscereal - Serialize 'vctrs' Objects to 'JSON'
The 'vctrs' package provides a concept of vector prototype that can be especially useful when deploying models and code. Serialize these object prototypes to 'JSON' so they can be used to check and coerce data in production systems, and deserialize 'JSON' back to the correct object prototypes.
Last updated
5.08 score 26 stars 2 dependents 4 scripts 1.5k downloadsdoclisting - List Functions in Documentation
Generate 'Rd' markup to list methods for a generic function. Makes it easier to document S3, S4, and S7 generics by automatically finding and linking to method documentation.
Last updated
4.26 score 9 stars 1 scripts 596 downloadsdevoid - A Graphic Device that Does Nothing
Provides a non-drawing graphic device for benchmarking purpose. In order to properly benchmark graphic drawing code it is necessary to factor out the device implementation itself so that results are not related to the specific graphics device used during benchmarking. The 'devoid' package implements a graphic device that accepts all the required calls from R's graphic engine but performs no action. Apart from benchmarking it is unlikely that this device has any practical use.
Last updated
graphics
4.25 score 22 stars 16 scripts 219 downloadsoskeyring - Raw System Credential Store Access from R
Aims to support all features of the system credential store, including non-portable ones. Supports 'Keychain' on 'macOS', and 'Credential Manager' on 'Windows'. See the 'keyring' package if you need a portable 'API'.
Last updated
4.23 score 6 stars 4 scripts 2.8k downloadstoml - Read, Write, and Modify TOML Files
Simple toolkit for working with TOML text. Based on tomledit which allows for modifying TOML while preserving order, comments,and whitespace.
Last updated
4.20 score 4 stars 6 scripts 967 downloadsghapps - Authenticate as a 'GitHub' App
'GitHub' apps provide a powerful way to manage fine grained programmatic access to specific 'git' repositories, without having to create dummy users, and which are safer than a personal access token for automated tasks. This package extends the 'gh' package to let you authenticate and interact with 'GitHub' <https://docs.github.com/en/rest/overview> in 'R' as an app.
Last updated
4.00 score 20 stars 1 scripts 158 downloads