Skip to content

Repository files navigation

Maxmind reader


npm version GitHub license CI pipeline Opened issues Opened PR DeepScan grade Code coverage Dependencies

Purpose

Minimalist, efficient and performance focused module to read a maxmind database. Basically it can read a maxmind db from S3 and store it into memory.

Compatibility

/!\ This module use async/await syntax, this is why you must have node 7.6+.

Supported and tested : >= 14

Version Supported Tested
18.x yes yes
16.x yes yes
14.x yes yes
12.x no yes
10.x no yes
9.x no yes
8.x no yes
>= 7.6 no yes

Installation

$ npm install @voodoo.io/maxmind-reader --save

Usage

Instantiation & init

const S3Tools = require('@voodoo.io/aws-utils').s3
const s3 = new aws.S3()
const s3Tools = new S3Tools(s3)

const Geoloc = require('@voodoo.io/maxmind-reader')
const geoloc = new Geoloc({
  // here is your config
}, s3Tools)

// launch the interval to reload the file
// the delay can be customized as parameter
await geoloc.init()

Basic usage

const isoCode = geoloc.getCountry('149.62.156.82')
// isoCode equals 'FR'

Config

Property description  Default value
S3_GEOLOC_KEY '/path/to/GeoLite2-Country.mmdb' empty
S3_GEOLOC_BUCKET Bucket's name empty
delay Interval in ms between two reloading 3600000 (1hour)
enableScheduler Enable the scheduler? true

Test

$ npm test

Coverage report can be found in coverage/.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages