Skip to content
This repository has been archived by the owner on Mar 30, 2020. It is now read-only.

Latest commit

 

History

History
86 lines (64 loc) · 2.91 KB

README.md

File metadata and controls

86 lines (64 loc) · 2.91 KB

Micro

version Maintenance mit dep size known vulnerabilities Build Status

NodeJS C++ NAPI low level binding to get high resolution timestamp.

This API is synchronous.

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/micro
# or
$ yarn add @slimio/micro

Usage example

const { now, gettimeofday, clock } = require("@slimio/micro");

console.log(now()); // 1538484472718548
console.log(gettimeofday()); // { sec: 1538484493, usec: 222313 }
console.log(clock.now());
console.log(clock.gettime());

API

now(): number

Return the current timestamp as microsecond. You can achieve the same result with gettimeofday():

const tv = micro.gettimeofday();
const now = (tv.sec * 1000000) + tv.usec;
console.log(now); // 1538484472718548

Warning: Micro.now() suffers the effects of drift like Date.now()

gettimeofday(): timeval

UNIX gettimeofday binding (polyfill has been added for Windows too). Return a timeval interface Object.

interface timeval {
    sec: number;
    usec: number;
}

export function gettimeofday(): timeval;

clock.gettime(): timespec;

UNIX clock_gettime binding (polyfill has been added for Windows too). Return a timespec interface Object. This method work like NodeJS process.hrtime.

clock.now(): number;

Return a millisecond no-drift timestamp. You can achieve the same with clock.gettime():

const { sec, usec } = micro.clock.gettime();
console.log(sec * 1e3 + usec / 1e6);

// same as:
console.log(micro.clock.now());

Contribution Guidelines

To contribute to the project, please read the code of conduct and the guide for N-API compilation.

Dependencies

Name Refactoring Security Risk Usage
node-addon-api ⚠️Major Low Node.js C++ addon api
node-gyp-build ⚠️Major Low Node-gyp builder

License

MIT