MyNixOS website logo
Description

Dependency-Free String Operations.

Provides drop-in replacements for functions from the 'stringr' package, with the same user interface. These functions have no external dependencies and can be copied directly into your package code using the 'staticimports' package.

stringstatic

r-universe statusbadge License:CC0 R buildstatus Dependencies

stringstatic provides a reimplementation of several functions from stringr. These functions are dependency free and can be copied directly into your package code using staticimports. This allows you to reap the benefits of stringr’s intuitive user interface without the overhead of stringr’s dependencies.

See section Pros and cons to decide whether stringstatic or stringr is a better fit for your package.

Installation

You can install the development version of stringstatic from GitHub:

# install.packages("pak")
pak::pkg_install("rossellhayes/stringstatic")

Usage

To import functions from stringstatic into your package, put a comment block starting with # @staticimports pkg:stringstatic in one of your R source files. For example, your utils.R file may have this at the top:

# @staticimports pkg:stringstatic
#  str_replace str_replace_all
#  str_subset

pkg:stringstatic means you will import functions from the stringstatic package. You can find many other useful functions in pkg:staticimports.

Subsequent lines list the objects to import from the package. In this case, they are str_replace(), str_replace_all() and str_subset().

To perform the import, run:

staticimports::import()

By default, this will write the functions to an R/staticimports.R file in your project.

Pros and cons

Pros

  • stringstatic does not depend on stringi, which is a heavy dependency that can increase install times if it is not already installed.
  • stringstatic functions can be copied directly into your package, meaning future breaking changes will not change functionality in your package.

Cons

  • stringi, which powers stringr, provides better Unicode support than R’s built-in regex engine. If you expect to work with non-ASCII text, stringr may provide better results.
    • While stringi is a heavy dependency, users are likely to already have it installed because it is included when installing the tidyverse.
  • If stringstatic functions are copied directly into your package, you will not automatically benefit from improvements or bug fixes.

Code of Conduct

Please note that the stringstatic project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


Hex sticker image by Flavia Rossell Hayes.

Hex sticker font is Source Sans by Adobe.

Metadata

Version

0.1.2

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows