Skip to content

VoodooTeam/maxmind-reader

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

License

Stars

Watchers

Forks

Packages

No packages published