Library / SDK
node-influx/node-influx avatar
node-influx/node-influx

node-influx is a client for the InfluxDB 1.x line, not for InfluxDB 2

📈 The InfluxDB Client for Node.js and Browsers

862 stars177 forksTypeScriptMIT

At a glance

What is it?
node-influx is a zero dependency TypeScript library for talking to InfluxDB 1.x and older from Node and the browser, and the README tells you plainly that InfluxDB 2 users should reach for the official client instead. It remains useful for long-lived 1.x deployments, with a clear compatibility table and a conventional npm test and release pipeline.
Who is it for?
node-influx is the right choice for a Node or browser application still writing to an InfluxDB 1.x server, where its zero dependency footprint and browser support are worth having.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 148 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The README points InfluxDB 2 users somewhere else

The first line of substance in the README is a redirect, and it is the most important thing to know before anything else. node-influx is the InfluxDB v1.x JavaScript library, for Node and browsers, and for v2 the documentation says to please use the official client, linking to influxdata/influxdb-client-js in the influxdata organisation. That is the whole scope of the project in one sentence. The alternative is not an interchangeable API with a different style, it is a client for a different server generation, one that talks to the 2.x query and write API rather than the 1.x one. So the decision to adopt node-influx is really a decision about which InfluxDB server your deployment runs. Teams that inherited a 1.x cluster, or that need a client that also runs in a browser, are the ones this library is for.

The compatibility table rules out most modern deployments

The Compatibility section sets out which major version of the client matches which server line and which Node version. Version 5.x.x is compatible with InfluxDB 1.x on Node 4 onwards and modern browsers. Version 4.x.x is compatible with InfluxDB 0.9.x through 0.13.x on Node 0.12 and onwards. Version 3.x.x is compatible with InfluxDB 0.8.x, and that line will no longer have updates by core contributors, with the README asking readers to consider upgrading. That last sentence is the project's own maintenance signal inside the documentation, and it is dated: 3.x is where the freeze happened, and everything since has been on the 4.x and 5.x lines. Two consequences follow for an adopter. First, if your server is 0.9 to 0.13 you are pinned to the 4.x client, which the release list shows no longer moving. Second, even on the current line, the supported surface is the 1.x server API, so an application written against node-influx cannot be pointed at a 2.x server without a rewrite.

Installing influx and reaching it from a browser

For Node, installation is one command:

bash
$ npm install --save influx

The package name on npm is influx, which is a short name worth being careful about, since the README itself links to the npm page for it. For browsers, the README does not inline the steps but points to the browser setup instructions in the manual at node-influx.github.io/manual/usage.html#browser-setup, and the repository carries a matching document at examples/browser-setup.md. The browser story is a headline feature rather than an afterthought: the feature list claims full support in Node and the browser, and the compatibility statement names modern browsers alongside Node 4 onwards. That combination, one library for a server and a client bundle, is the practical argument for this client over the official v2 library, which the project recommends only for InfluxDB 2 users.

Zero dependencies and a TypeScript build that ships compiled JS

The feature list is short and specific: a simple API for nearly all Influx operations, full support in Node and the browser, throughput in the millions of rows per second on modest hardware as the project asserts, and zero dependencies. That last item is the one that shapes day to day use, because a client that pulls in no packages cannot break when a transitive dependency changes, and it keeps a browser bundle small. The claims about throughput are stated in the README as features rather than published as measurements, so treat them as a vendor statement rather than something you can verify from the repository. The build side explains how the TypeScript sources become the published artefact. The package points its main entry at ./lib/src/index.js and its typings at ./lib/src/index, and the npm scripts show the pipeline:

json
    "build:dist": "npm run clean && tsc && cp -R test/fixture lib/test",
    "test": "npm-run-all --parallel test:lint test:unit test:integrate",
    "test:unit": "tsx ./node_modules/mocha/bin/mocha --timeout 20000 test/unit/*.test.ts",

The compilation is done by tsc, the documentation by esdoc using the esdoc.json configuration at the root, and formatting by prettier with a single quote and trailing comma style at a print width of 100. The clean script removes coverage, doc and lib directories, so the build starts from an empty output tree.

One command runs lint, unit and integration tests together

The test setup is worth a look before you depend on the library, because it tells you how much is verified automatically. The test script runs three suites in parallel: test:lint, which is a prettier check over the repository, test:unit, which runs mocha over the unit tests through tsx with a 20 second timeout, and test:integrate, which does the same over the integration tests. The integration suite has its own timeout, and given that these tests talk to a real InfluxDB instance, you need a server available for the full script to pass. There are separate commands for coverage, with istanbul collecting from the unit tests and opening the lcov report, and a browser suite driven by karma using test/karma.conf.js, which is the mechanism behind the claim of browser support. A CI script, test:ci, chains clean, unit, integrate and build:dist before producing lcov output. Examples in the repository cover the areas a user hits first, with files for browser setup, Express response times, testing and time handling.

The release pipeline automates versioning from commit messages

Releases are not cut by hand. The package uses semantic-release, driven by the conventional commit messages the project enforces, with commitizen configured in the development setup. The tooling around it is modern and visible: renovate.json is committed for automated dependency updates, .prettierrc.json fixes the formatting rules, .npmignore and .gitignore keep the package contents straight, and the CHANGELOG.md at the root is what readers consult for version history alongside the changelog page published in the manual. The documentation site is assembled by esdoc, with the entry point generated from the src/index.js class documentation, and the tutorials and examples section of the manual is where the API is actually taught. For a library that has been around long enough to carry compatibility shims for Node 0.12, the surrounding infrastructure is more current than the runtime floor it supports, which tells you something about where the maintenance energy goes.

Where node-influx stops being the right choice

There are three boundaries, and they are stated rather than discovered. The first is the server version, since the library targets InfluxDB 1.x and older, and the README sends v2 users to the official client. The second is the client version you are stuck on, because 3.x covers InfluxDB 0.8.x and will no longer receive updates from core contributors, so a deployment on 0.8.x has no forward path in this repository. The third is the pace of work. The release list shows v5.12.0 on 2026-01-12, v5.11.0 on 2025-09-08 and v5.10.0 on 2025-02-27, and the last push to the repository was on 2026-05-28. The repository is not archived, so the work has not stopped, but the gap between the most recent release and the last commit is the number to watch if you are depending on prompt fixes. The library is MIT licensed, which leaves no licensing obstacle to adoption, and the practical risk sits in the 1.x server API rather than in the licence.

Editorial conclusion

node-influx is the right choice for a Node or browser application still writing to an InfluxDB 1.x server, where its zero dependency footprint and browser support are worth having. It is the wrong choice for anything aimed at InfluxDB 2, because the project itself redirects you to the official client for v2 and its 5.x compatibility statement is scoped to InfluxDB 1.x. Verify first which server version your deployment runs, since the compatibility table only covers the 0.8.x through 1.x lines, then check CHANGELOG.md and the last push date of 2026-05-28 before pinning a version, as the 3.x line has had no updates from core contributors for some time.

Frequently asked questions

How do I install node-influx?

Run npm install --save influx. The npm package name is influx, and for browsers the README points to the browser setup instructions in the manual rather than giving a separate install command.

Which InfluxDB server versions does node-influx support?

Version 5.x.x targets InfluxDB 1.x on Node 4 and onwards, 4.x.x targets InfluxDB 0.9.x to 0.13.x on Node 0.12 and onwards, and 3.x.x targets InfluxDB 0.8.x but receives no further updates from core contributors.

Should I use node-influx with InfluxDB 2?

No. The README states that this is the client for InfluxDB v1.x and older, and that for v2 you should use the official client hosted in the influxdata organisation.

Does node-influx have any runtime dependencies?

The feature list states zero dependencies. The build and test tooling is separate from the published library, and the compiled output is produced with tsc and packaged from the lib directory.

How are node-influx releases versioned?

The package uses semantic-release with conventional commits, and commitizen is configured for authoring commit messages. renovate.json is committed for automated dependency updates, and CHANGELOG.md records the version history.

Official sources

  1. License: MIT
  2. node-influx/node-influx on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/node-influx-node-influx.svg)](https://hysenlabs.com/projects/node-influx-node-influx)

Was this useful?