Skip to content

rodrigolive/js400

Repository files navigation

js400

js400 is a pure JavaScript IBM i client library for Node.js and Bun. It is built as a protocol-focused port of IBM's JTOpen project, with special attention to host-server wire compatibility instead of JVM-only infrastructure.

Install

npm install js400
# or
bun add js400

Quick start

import { sql } from 'js400';

const conn = await sql.connect({
  host: 'your-ibmi-host',
  user: 'MYUSER',
  password: 'mypassword',
});

const rows = await conn.query('SELECT * FROM MYLIB.CUSTOMER');
console.log(rows);

await conn.close();

Main docs

JTOpen parity addendum

js400 is not yet a drop-in replacement for every JTOpen class or JDBC edge case. The main remaining gaps are:

  • Some Java-only JTOpen families are intentionally not ported: proxy/RMI layers, GUI dialogs, JNDI/JTA/XA glue, RowSet/BeanInfo scaffolding, and other JVM-only support code.
  • Some SQL/JDBC behavior is still partial: full multi-result-set streaming via getMoreResults(), updatable or sensitive result sets, and a few metadata and type-system edges.
  • Some connection properties are accepted for compatibility but are not fully active at runtime yet, especially prefetch-related and reroute settings.
  • Some JTOpen-faithful wire paths are implemented but still need more live IBM i qualification, especially SQL package cache reuse and wire-level cancel on real hosts.

For the maintained detail, see docs/sql-feature-matrix.md and docs/unsupported.md.

About

Wire-compatible JTOpen port for Node v20+ and Bun

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors