A React Native TurboModule to get system uptime on iOS and Android devices. Provides methods to retrieve the time since the last restart in milliseconds and microseconds.
npm install react-native-system-uptimeGet system uptime (time since last device boot/restart) from React Native.
This library is implemented as a TurboModule and exposes synchronous methods to read uptime in milliseconds and microseconds.
- Works on iOS and Android
- Synchronous reads (no bridge round-trips)
- Returns uptime in ms and µs
- React Native New Architecture enabled (RCT_NEW_ARCH_ENABLED=1 / newArchEnabled=true)
- iOS: CocoaPods
If you are not using the New Architecture, this package will not load because it uses TurboModuleRegistry.getEnforcing.
``sh`
yarn add react-native-system-uptime
iOS:
`sh`
cd ios && pod install
This is a native module. Use it with a custom dev client or a prebuilt app:
`sh`
npx expo prebuild
`ts
import { getUptimeMs, getUptimeUs } from 'react-native-system-uptime';
const uptimeMs = getUptimeMs();
const uptimeUs = getUptimeUs();
console.log({ uptimeMs, uptimeUs });
`
`tsx
import * as React from 'react';
import { Text } from 'react-native';
import { getUptimeMs } from 'react-native-system-uptime';
export function UptimeLabel() {
const [uptimeMs, setUptimeMs] = React.useState(() => getUptimeMs());
React.useEffect(() => {
const id = setInterval(() => setUptimeMs(getUptimeMs()), 1000);
return () => clearInterval(id);
}, []);
const uptimeSeconds = Math.floor(uptimeMs / 1000);
return
}
`
All methods are synchronous and return a number.
Returns milliseconds since the device booted.
Returns microseconds since the device booted.
If the native call fails, the module returns -1.
- Android: uses SystemClock.elapsedRealtime()KERN_BOOTTIME
- iOS: computed from (via sysctl) and the current time
- Ensure New Architecture is enabled.
- Rebuild the app after installing the package.
- iOS: run pod install.
- Run the example app: yarn exampleyarn typecheck
- Typecheck: yarn test`
- Tests:
- Development workflow
- Sending a pull request
- Code of conduct
MIT
---
Built with create-react-native-library