Socket
Book a DemoInstallSign in
Socket

@badmachine/influxdb3-napi

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@badmachine/influxdb3-napi

Influxdb3 client written in rust and built for nodejs with napi-rs

latest
Source
npmnpm
Version
1.0.10
Version published
Weekly downloads
14
27.27%
Maintainers
1
Weekly downloads
 
Created
Source

influxdb3-napi Logo

influxdb3-napi

High-performance Node.js client for InfluxDB 3.0 with native Rust bindings, supporting both read and write operations.

Installation

npm install @badmachine/influxdb3-napi

Features

  • High Performance - Native Rust bindings for optimal performance
  • SQL Queries - Execute SQL queries with async iterator support
  • Line Protocol Writing - Write data using InfluxDB line protocol
  • TypeScript Support - Full TypeScript definitions included
  • Type Safe - Built with type safety in mind

Why?

  • This library was initially inspired by the need to handle edge cases where other libraries fail to decode certain Arrow Flight data types (see InfluxCommunity/influxdb3-js#590). It correctly supports all data types returned by InfluxDB.
  • Unlike this library, some requests to https hosts were failing with other JS libraries due to self-signed certificate check errors
  • Blazingly™ Much faster than other libraries when querying the data.
  • Includes three different serializers for maximum flexibility:
    • Default serializer — conveniently converts time intervals.
    • Serde-based serializer — leverages serde for basic json serialization.
    • Raw serializer — returns the raw byte array buffer.

Quick Start

import { InfluxDbClient, Point } from '@badmachine/influxdb3-napi';

// Initialize client
const client = new InfluxDbClient(
  'http://your-influxdb-host:8086',
  'your-api-token'
);

// Write data using Point builder
const point = Point.fromMeasurement('temperature')
  .setTag('location', 'office')
  .setTag('sensor', 'temp01')
  .setBooleanField('active', true)
  .setFloatField('value', 23.5);

const lineProtocol = point.toLineProtocol('ns');
await client.write([lineProtocol], 'your-database');

// Query data with async iteration
const result = client.query({
  database: 'your-database',
  query: 'SELECT * FROM temperature WHERE time > now() - 1h',
  type: 'sql'
});

// Stream results efficiently
for await (const row of result) {
  console.log(row);
}

TypeScript Support

Full TypeScript definitions are included:

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

License

MIT License - see LICENSE file for details.

Support

Changelog

See CHANGELOG.md for version history and changes.

Keywords

influx

FAQs

Package last updated on 13 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts