<commit_before># node-rfc

Asynchronous, non-blocking [SAP NetWeaver RFC SDK](https://support.sap.com/en/product/connectors/nwrfcsdk.html) client bindings for [Node.js](http://nodejs.org/), providing convenient ABAP business logic consumption from Node.js.

[![NPM](https://nodei.co/npm/node-rfc.png?downloads=true&downloadRank=true)](https://nodei.co/npm/node-rfc/)

[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![N-API v6 Badge](https://github.com/nodejs/abi-stable-node/raw/doc/assets/N-API%20v6%20Badge.svg?sanitize=true)](https://github.com/nodejs/abi-stable-node/)
[![release](https://img.shields.io/npm/v/node-rfc.svg)](https://www.npmjs.com/package/node-rfc)
[![downloads](https://img.shields.io/github/downloads/sap/node-rfc/total.svg)](https://www.npmjs.com/package/node-rfc)
[![dpm](https://img.shields.io/npm/dm/node-rfc.svg)](https://www.npmjs.com/package/node-rfc)
[![REUSE status](https://api.reuse.software/badge/github.com/SAP/node-rfc)](https://api.reuse.software/info/github.com/SAP/node-rfc)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4350/badge)](https://bestpractices.coreinfrastructure.org/projects/4350)

## Key features

- Based on [N-API](https://github.com/nodejs/node-addon-api) standard
- Stateless and stateful connections (multiple function calls in the same ABAP session (same context))
- Async/await, promise and callback API
- ECMAScript, TypeScript
- Sequential and parallel calls, using one or more clients
- Automatic conversion between NodeJS and ABAP datatypes
- Direct and managed connections (connection pool)
- Throughput monitoring: number of calls, bytes sent/received, application/total time; SAP NWRFC SDK >= 7.53 required
- Usage examples & code-snippets: [SAP-samples/node-rfc-samples](https://github.com/SAP-samples/node-rfc-samples)

## Content

- **[Supported Platforms](#supported-platforms)**
- **[Requirements](#requirements)**
- **[Download and installation](#download-and-installation)**
- **[Getting started](#getting-started)**
- **[Usage](doc/usage.md)**
  - **[Authentication](doc/authentication.md)**
  - **[sapnwrfc.ini](doc/usage.md#addon)**
  - **[Client](doc/usage.md#client-toc)**
  - **[Connection Pool](doc/usage.md#connection-pool)**
  - **[Throughput](doc/usage.md#throughput)**
- **[API](doc/api.md)**
  - **[Connection Pool](doc/api.md#connection-pool)**
  - **[Client](doc/api.md#client)**
  - **[Throughput](doc/api.md#throughput)**
- **[Troubleshooting](doc/troubleshooting.md)**
- **[More resource and info about SAP Connectors and RFC communication](#resources)**
- **[Code of Conduct](CODE_OF_CONDUCT.md)**
- **[Contributing](#contributing)**
- **[License](#license)**

## Supported platforms

- [Current and active nodejs LTS releases](https://github.com/nodejs/LTS)

- The _node-rfc_ connector can be [built from source](#setup) on all platforms supported both by [SAP NW RFC SDK](https://launchpad.support.sap.com/#/notes/2573790) and by [nodejs](https://github.com/nodejs/node/blob/master/BUILDING.md#supported-platforms-1)

- Pre-built binaries are provided for [active nodejs LTS releases](https://github.com/nodejs/LTS), for 64 bit Windows 10, macOS 10.15 and [Centos 7 based docker container](https://github.com/SAP/fundamental-tools/tree/master/docker)

Other platforms and frameworks:

- SAP Cloud Platform, AWS Lambdas, heroku ...: Create SAP feature request for `Security Services` category of the [SAP Cloud Platform – Platform Foundation](https://influence.sap.com/sap/ino/#/campaign/2277)
- [Electron](https://github.com/SAP-samples/node-rfc-samples/tree/main/frameworks/electron-quick-start)
- [NW.js](https://github.com/SAP-samples/node-rfc-samples/tree/main/frameworks/nwjs-quick-start)
- [Node-RED](https://github.com/PaulWieland/node-red-contrib-saprfc)
- [Sails JS](https://github.com/dcolley/sailsjs-node-rfc)

## Requirements

### All platforms

- SAP NW RFC SDK C++ binaries must be downloaded (SAP partner or customer account required) and locally installed. Check [installation instructions](doc/installation.md#sap-nwrfc-sdk-installation) and [SAP NW RFC SDK section on SAP Support Portal](https://support.sap.com/en/product/connectors/nwrfcsdk.html). Using the latest version is reccomended as SAP NW RFC SDK is fully backwards compatible, supporting all NetWeaver systems, from today S4, down to R/3 release 4.6C.

- Build toolchain requires [CMake](https://cmake.org/)

- Build from source on older Linux systems, may require `uchar.h` file, attached to [SAP OSS Note 2573953](https://launchpad.support.sap.com/#/notes/2573953), to be copied to SAP NW RFC SDK include directory.

### Linux

- Build toolchain is based on Centos 7 with devtools-8, following the [standard NodeJS build toolchain](https://github.com/nodejs/node/blob/master/BUILDING.md#official-binary-platforms-and-toolchains)

- Docker container: [SAP/fundamental-tools/docker](https://github.com/SAP/fundamental-tools/tree/master/docker)

### Windows

- [Visual C++ Redistributable](https://www.microsoft.com/en-US/download/details.aspx?id=40784) is required for runtime. The version is given in [SAP Note 2573790 - Installation, Support and Availability of the SAP NetWeaver RFC Library 7.50](https://launchpad.support.sap.com/#/notes/2573790)<commit_msg>docs(readme): supported platforms docu updted<commit_after># node-rfc

Asynchronous, non-blocking [SAP NetWeaver RFC SDK](https://support.sap.com/en/product/connectors/nwrfcsdk.html) client bindings for [Node.js](http://nodejs.org/), providing convenient ABAP business logic consumption from Node.js.

[![NPM](https://nodei.co/npm/node-rfc.png?downloads=true&downloadRank=true)](https://nodei.co/npm/node-rfc/)

[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![N-API v6 Badge](https://github.com/nodejs/abi-stable-node/raw/doc/assets/N-API%20v6%20Badge.svg?sanitize=true)](https://github.com/nodejs/abi-stable-node/)
[![release](https://img.shields.io/npm/v/node-rfc.svg)](https://www.npmjs.com/package/node-rfc)
[![downloads](https://img.shields.io/github/downloads/sap/node-rfc/total.svg)](https://www.npmjs.com/package/node-rfc)
[![dpm](https://img.shields.io/npm/dm/node-rfc.svg)](https://www.npmjs.com/package/node-rfc)
[![REUSE status](https://api.reuse.software/badge/github.com/SAP/node-rfc)](https://api.reuse.software/info/github.com/SAP/node-rfc)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4350/badge)](https://bestpractices.coreinfrastructure.org/projects/4350)

## Key features

- Based on [N-API](https://github.com/nodejs/node-addon-api) standard
- Stateless and stateful connections (multiple function calls in the same ABAP session (same context))
- Async/await, promise and callback API
- ECMAScript, TypeScript
- Sequential and parallel calls, using one or more clients
- Automatic conversion between NodeJS and ABAP datatypes
- Direct and managed connections (connection pool)
- Throughput monitoring: number of calls, bytes sent/received, application/total time; SAP NWRFC SDK >= 7.53 required
- Usage examples & code-snippets: [SAP-samples/node-rfc-samples](https://github.com/SAP-samples/node-rfc-samples)

## Content

- **[Supported Platforms](#supported-platforms)**
- **[Requirements](#requirements)**
- **[Download and installation](#download-and-installation)**
- **[Getting started](#getting-started)**
- **[Usage](doc/usage.md)**
  - **[Authentication](doc/authentication.md)**
  - **[sapnwrfc.ini](doc/usage.md#addon)**
  - **[Client](doc/usage.md#client-toc)**
  - **[Connection Pool](doc/usage.md#connection-pool)**
  - **[Throughput](doc/usage.md#throughput)**
- **[API](doc/api.md)**
  - **[Connection Pool](doc/api.md#connection-pool)**
  - **[Client](doc/api.md#client)**
  - **[Throughput](doc/api.md#throughput)**
- **[Troubleshooting](doc/troubleshooting.md)**
- **[More resource and info about SAP Connectors and RFC communication](#resources)**
- **[Code of Conduct](CODE_OF_CONDUCT.md)**
- **[Contributing](#contributing)**
- **[License](#license)**

## Supported platforms

- [Current and active nodejs LTS releases](https://github.com/nodejs/LTS)

- The _node-rfc_ connector can be [built from source](#setup) on all platforms supported both by [SAP NW RFC SDK](https://launchpad.support.sap.com/#/notes/2573790) and by [nodejs](https://github.com/nodejs/node/blob/master/BUILDING.md#supported-platforms-1)

- Pre-built binaries are provided for [active nodejs LTS releases](https://github.com/nodejs/LTS), for 64 bit Windows 10, macOS 10.15 and [Centos 7 based docker container](https://github.com/SAP/fundamental-tools/tree/master/docker)

Other platforms and frameworks:

- SAP Cloud Platform, AWS Lambdas, heroku ...:
  - Create SAP feature request for `Security Services` category of the [SAP Cloud Platform – Platform Foundation](https://influence.sap.com/sap/ino/#/campaign/2277)
- Electron
  - Feature request: #144
  - Experimental work: [SAP-samples/node-rfc-samples/frameworks/electron-quick-start](https://github.com/SAP-samples/node-rfc-samples/tree/main/frameworks/electron-quick-start)
- NW.js
  - Feature request: #144
  - [SAP-samples/node-rfc-samples/frameworks/nwjs-quick-start](https://github.com/SAP-samples/node-rfc-samples/tree/main/frameworks/nwjs-quick-start)
- Node-RED
  - Feature requests: #161 and #148
  - Experimental work: [PaulWieland/node-red-contrib-saprfc](https://github.com/PaulWieland/node-red-contrib-saprfc)
- [Sails JS](https://github.com/dcolley/sailsjs-node-rfc)

## Requirements

### All platforms

- SAP NW RFC SDK C++ binaries must be downloaded (SAP partner or customer account required) and locally installed. Check [installation instructions](doc/installation.md#sap-nwrfc-sdk-installation) and [SAP NW RFC SDK section on SAP Support Portal](https://support.sap.com/en/product/connectors/nwrfcsdk.html). Using the latest version is reccomended as SAP NW RFC SDK is fully backwards compatible, supporting all NetWeaver systems, from today S4, down to R/3 release 4.6C.

- Build toolchain requires [CMake](https://cmake.org/)

- Build from source on older Linux systems, may require `uchar.h` file, attached to [SAP OSS Note 2573953](https://launchpad.support.sap.com/#/notes/2573953), to be copied to SAP NW RFC SDK include directory.

### Linux

- Build toolchain is based on Centos 7 with devtools-8, following the [standard NodeJS build toolchain](https://github.com/nodejs/node/blob/master/BUILDING.md#official-binary-platforms-and-toolchains)

- Docker container: [SAP/fundamental-tools/docker](https://github.com/SAP/fundamental-tools/tree/master/docker)

### Windows

- [Visual C++ Redistributable](https://www.microsoft.com/en-US/download/details.aspx?id=40784) is required for runtime. The version is given in [SAP Note 2573790 - Installation, Support and Availability of the SAP NetWeaver RFC Library 7.50](https://launchpad.support.sap.com/#/notes/2573790)
{'fraction_non_alphanumeric': 0.16366775717920756, 'fraction_numerical': 0.016721192293711377, 'mean_word_length': 5.03013698630137, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 72, 'lorem ipsum': 0, 'www.': 8, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 16, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '388509', 'n_tokens_mistral': 3883, 'n_tokens_neox': 3547, 'n_words': 735}