Skip to content
AF
Open-source libraries

Open-source health and fitness libraries

20 packages (9 npm, 4 pub.dev, 7 PyPI) · 5 comparisons · registries read 2026-10-03

Most apps reach Apple HealthKit or Android Health Connect through an open-source wrapper rather than native code, and the wrapper decides which data types, frameworks and OS versions you get. This page tracks 20 packages — wrappers for React Native, Capacitor, Cordova and Flutter, plus Python clients for vendor APIs — with every version, date and licence read from npm, pub.dev and PyPI by a script. 2 of them are marked deprecated or inactive in their own registry entry, and several more carry a status note in their README — each page quotes it in the project’s words.

React Native

HealthKit and Health Connect are separate stores with separate bridges: a React Native app that ships on both platforms usually installs one package per platform.

React Native health data libraries: how to choose, and the platform rules they inherit →

PackageWrapsLatestPublishedLicenceRegistry status
react-native-healthnpmApple HealthKit1.19.02024-10-15no release in the 718 days to our readMIT—
@kingstinct/react-native-healthkitnpmApple HealthKit16.0.02026-09-18no release in the 15 days to our readMIT—
react-native-health-connectnpmHealth Connect4.1.32026-08-06no release in the 58 days to our readMIT—
expo-health-connectnpm—0.1.12024-07-31no release in the 794 days to our readMITDeprecated (registry)
react-native-google-fitnpmGoogle Fit0.22.12025-10-08no release in the 360 days to our readMIT—

Capacitor and Cordova

Three of these four plugins cover both stores behind one API. The Cordova plugin also documents a manual setup for Capacitor projects.

Capacitor and Cordova health plugins: how to choose, and the platform rules they inherit →

PackageWrapsLatestPublishedLicenceRegistry status
capacitor-healthnpmApple HealthKit, Health Connect8.4.02026-09-23no release in the 10 days to our readMIT—
@capgo/capacitor-healthnpmApple HealthKit, Health Connect8.11.42026-09-22no release in the 11 days to our readMPL-2.0—
@perfood/capacitor-healthkitnpmApple HealthKit1.3.22025-02-13no release in the 597 days to our readMIT—
cordova-plugin-healthnpmApple HealthKit, Health Connect3.3.02026-09-26no release in the 7 days to our readMIT—

Flutter

Two cross-platform plugins and two single-store ones (one iOS-only, one Android-only); compare the release dates before choosing.

Flutter health data packages: how to choose, and the platform rules they inherit →

PackageWrapsLatestPublishedLicenceRegistry status
healthpub.devApple HealthKit, Health Connect13.3.22026-08-14no release in the 50 days to our readMIT—
health_connectorpub.devApple HealthKit, Health Connect3.11.12026-09-16no release in the 17 days to our readMIT—
health_kit_reporterpub.devApple HealthKit2.3.12024-12-12no release in the 660 days to our readMIT—
flutter_health_connectpub.devHealth Connect1.2.32023-03-08no release in the 1,305 days to our readMIT—

Python

Clients for vendor web APIs rather than on-device stores — for scripts, back ends and personal data exports. Each page says how the client signs in, according to its README.

Python libraries for fitness APIs: how to choose, and the platform rules they inherit →

PackageWrapsLatestPublishedLicenceRegistry status
garminconnectPyPIGarmin Connect0.3.172026-09-29no release in the 4 days to our readMIT—
garthPyPIGarmin Connect0.8.02026-03-28no release in the 189 days to our readMITInactive (PyPI classifier)
stravalibPyPIStrava API2.6.02026-08-27no release in the 37 days to our readApache-2.0—
oura-ringPyPIOura API1.0.12026-06-22no release in the 103 days to our readMIT—
ouraPyPIOura API1.3.02024-04-23no release in the 893 days to our readMIT License—
fitbitPyPIFitbit Web API0.3.12019-05-24no release in the 2,689 days to our readApache 2.0—
withings-apiPyPIWithings API2.4.02022-02-08no release in the 1,698 days to our readMIT—

Side-by-side comparisons

Only for packages that answer the same need on the same platform. Facts from the registries, points from each README, and no winner row.

The native layer and the release record

Questions

Which React Native library should I use for HealthKit and Health Connect?
There is no single React Native package for both stores on this list: the HealthKit bridges (react-native-health, @kingstinct/react-native-healthkit) are iOS only and react-native-health-connect is Android only, so a cross-platform React Native app installs one of each. Capacitor and Flutter, by contrast, each have plugins that cover both stores behind one API.
How are the libraries on this page chosen and kept current?
Each package was confirmed to exist in its registry and to wrap a health store or a fitness vendor API before it was added; placeholders and empty packages were left out. A script reads npm, pub.dev, PyPI and GitHub weekly and refuses to publish if any package fails to resolve, so a version or a deprecation reaches these pages within about a week of the registry stating it.
Why does this page show release dates instead of saying whether a library is maintained?
Because a date is a fact and a verdict is an opinion. A HealthKit bridge over a stable API can go a long time between releases and still work; a fast release cadence can mean the API underneath is churning. Where a project says something about its own status — deprecated, inactive, feature-frozen, looking for a maintainer — the package page quotes it.

Read by scripts/fetch-libraries.mjs from the npm registry, pub.dev, PyPI and the packages’ repositories, and refreshed weekly. The list is curated, not exhaustive: packages that were placeholders, empty, or had no repository were left out. README notes on each page were checked on 2026-10-03. Compiled by AIFitnessAPI, which publishes none of these packages.