Skip to content

biohttp

0.1.2Package record

Normalized HTTP Transport with Circuit Breaking and Caching

1packages depend
632downloads / year
99.0%test coverage
13/13flavors OK

Overview

About

Web service calls return a normalized result value instead of raising a condition, so a caller branches on data rather than on an error handler. Transport failure, a non-success status code, and an unreadable response body are reported as three distinct outcomes. Per-host circuit breaking, retry with a transient-failure predicate, optional throttling, redacted request headers, and a success-only cache come as defaults. Many questions to one source can be asked as a single batch, where only the entries the cache is missing reach the network. Service-specific knowledge is left to the client packages built on top. The circuit breaker is the pattern described in Nygard (2018, ISBN:9781680502398).

Changes in 0.1.2

Preparation for a first CRAN submission. Everything here came out of reading the

package the way a CRAN reviewer reads one, which is a different pass from the

one that gets a suite green.

Changed

  • The disk cache defaults to tools::R_user_dir("biohttp", "cache") rather than data/cache. The old default was a relative path, so it resolved against whatever directory R was started in: a job run from two working directories quietly kept two caches, and neither knew about the other. CRAN policy also asks that a package write outside tempdir() only where a user expects it to, and a directory appearing under the working directory is not that place. Only a caller who had opted into the disk tier with BIOHTTP_CACHE_DISK is affected, and setting BIOHTTP_CACHE_DIR still overrides it. An existing data/cache is not migrated; it is a cache, so the cost of abandoning it is one cold start.
Show all changes in 0.1.2Hide the rest of the changes in 0.1.2
  • tools joins Imports for that call. It ships with R, so it adds nothing to what a consumer installs, and it is declared because R CMD check requires a declaration for anything reached with ::.
  • DESCRIPTION gains a reference for the circuit breaker, names the language as en-US, and hyphenates "service-specific".

Fixed

  • Every environment variable the package reads now treats an empty export the same way it treats an absent one. Sys.getenv()'s default argument only fires when a name is absent, so a container passing through a variable its operator never filled in got "" rather than the default, and four readers were doing that. env_num() and env_flag() had always had the rule; env_chr() gives it to the rest. The one that mattered was BIOHTTP_CALLER_IDENTITY. Exported empty, it sent User-Agent: biohttp/0.1.2 out as /0.1.2: a version with nothing in front of it, which is the one thing a user agent exists to carry, on a package whose point is being attributable to the service you are calling. Every test in the suite ran that way, because setup.R clears those variables by exporting them empty, and no test looked. BIOHTTP_CACHE_DIR was the same defect with a smaller blast radius: "" as a directory is the working directory, which is what the change above removes. BIOHTTP_CONTACT_URL, BIOHTTP_CONTACT_EMAIL and BIOHTTP_CACHE_SALT all default to "" anyway, so they read the same as before.
  • The status_message() example no longer calls withr, which is in Suggests. An example may only use what Imports guarantees: CRAN checks with _R_CHECK_DEPENDS_ONLY_ set, where a Suggests package is simply absent and the example errors. It now sets the option with options() and restores it, which also satisfies the separate rule that an example puts back anything it changes.

Added

  • inst/CITATION is shipped, so citation("biohttp") carries the Zenodo DOI from an installed copy. CITATION.cff is in .Rbuildignore and never reached a tarball, so the README had been promising something only a source checkout could deliver. Both exist now, because GitHub's cite box reads the .cff and R reads inst/CITATION.

Documentation

  • The README linked to CONTRIBUTING.md and LICENSE.md by relative path. Both are in .Rbuildignore, so neither reaches a tarball and both links were dead for anyone reading the README somewhere other than GitHub, which from here includes the CRAN package page. They are absolute now.
  • The README's Imports list named five packages where DESCRIPTION names six. A README that contradicts the DESCRIPTION printed beside it on the CRAN page is worth more than the line it saves.
  • The status line no longer carries a version number. The last one went stale within a release of being written, and NEWS.md already answers the question.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 1.5 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OKNow
  • OK7 OK2026-09-04
Advisories

none known

Documentation

In release 0.1.2
READMEYes · 1,191 wordsVignettesYes · 1 · dynamicNEWSYes · 100% structured · mentions 0.1.2Citation fileYes · computed when R runs itWebsiteYes · pkgdown
Help pages
32 (1 internal)includes a package overview page
Examples that run
100%30 run in a plain check
Exported functions with examples
97%
Documented parameters
97%
Return-value docs
97%
Help pages citing references
0%

Downloads

632
CRAN downloads in the past year
Rank #21,214 · ~2/day · ~53/mo
Daily download trend is not available in this view yet.
28930 days
63290 days
6321 year
Compare downloads with other packages →
Also on12 r2u31 autocran

Repository

2Stars
0Forks
0Open issues
0Open PRs
3Releases
94Commits
1Commit identities
api-clientbioinformaticscachingcircuit-breakerhttphttr2rr-package
94 commits · Last activity 2026-09-16 · 0% stars, 30d · Default branch at 0.1.3, ahead of CRAN 0.1.2 (checked 2026-10-22)
Responsiveness
How these are sampled
PRs merged (all time)
98%
Median days to close, 50 most recently updated closed issues
0
Median days to close, 50 most recently updated closed PRs
0

Stars over time

2026-09-04 · 12026-09-14 · 2
PracticesBeta

17 development-tooling and community-health practices detected across 7 families in the upstream repository

Checks run against github.com/samuelbharti/biohttp on 2026-10-22.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (5)
Code of conductContributing guideIssue templatesPR templateSecurity policy
Docs source (3)
pkgdown

GitHub Pages site last deployed 2026-09-16 · The repository has a site deploy workflow

Research and citation (2)
CITATION.cffZenodo
Show all practicesHide 3 practices
Automation and maintenance (1)
pre-commit
Lint, format, editor (3)
lintrLint workflowAir
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v4 (2026-10-20)

Dependencies

Declared dependencies
10 external dependencies (excludes base and recommended)

Installing biohttp adds 16 packages (12 with compiled code, 6.2 MB of source tarballs). Heaviest: openssl 1.1 MB, jsonlite 1.0 MB, vctrs 1.0 MB.

Depends (1)
R >= 4.0
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
1direct
0indirect
Imports 1
Depends, Imports or LinkingTo, most downloaded first

People & History

People (1)
Author, Maintainer since 0.1.2 (2026), Copyright holder
Releases (1)
  • 0.1.2Latest
    2026-09-03 · current release
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-09-03
Total releases
1 / 1 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 4.0
Download size
100 KB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("biohttp")

The package provides a citation file that builds its entry when R runs it. Run citation() to see it.

The repository also keeps a CITATION.cff.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for biohttp version 0.1.2 [Data set]. HJJB, LLC. Data release v2026-10-25. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy