| # Apache OpenDALâ„¢ Node.js Binding |
| |
| [](https://www.npmjs.com/package/opendal) |
| [](https://www.npmjs.com/package/opendal) |
| [](https://opendal.apache.org/docs/nodejs/) |
| |
|  |
| |
| ## Useful Links |
| |
| - [Documentation](https://opendal.apache.org/docs/nodejs/) |
| - [Upgrade Guide](./upgrade.md) |
| |
| ## Installation |
| |
| ```shell |
| npm install opendal |
| ``` |
| |
| ## Docs |
| |
| To build the docs locally, please run the following commands: |
| |
| ```shell |
| # Only need to run once unless you want to update the docs theme |
| pnpm run build:theme |
| |
| # Build the docs |
| pnpm run docs |
| ``` |
| |
| ## Tests |
| |
| Services behavior tests read necessary configs from env vars or the `.env` file. |
| |
| You can copy [.env.example](/.env.example) to `$(pwd)/.env` and change the values on need, or directly set env vars with `export KEY=VALUE`. |
| |
| Take `fs` for example, we need to enable bench on `fs` on `/tmp`: |
| |
| ```properties |
| OPENDAL_TEST=fs |
| OPENDAL_FS_ROOT=/tmp |
| ``` |
| |
| You can run service behavior tests of enabled with the following command: |
| |
| ```shell |
| pnpm build && pnpm test |
| ``` |
| |
| ## Usage |
| |
| ```javascript |
| import { Operator } from "opendal"; |
| |
| async function main() { |
| const op = new Operator("fs", { root: "/tmp" }); |
| await op.write("test", "Hello, World!"); |
| const bs = await op.read("test"); |
| console.log(new TextDecoder().decode(bs)); |
| const meta = await op.stat("test"); |
| console.log(`contentLength: ${meta.contentLength}`); |
| } |
| |
| main(); |
| ``` |
| |
| ## Usage with Next.js |
| |
| Config automatically be bundled by [Next.js](https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages). |
| |
| ```javascript |
| /** @type {import('next').NextConfig} */ |
| const nextConfig = { |
| serverExternalPackages: ["opendal"], |
| }; |
| |
| module.exports = nextConfig; |
| ``` |
| |
| ## Contributing |
| |
| - Start with [Contributing Guide](CONTRIBUTING.md). |
| - Submit [Issues](https://github.com/apache/opendal/issues/new) for bug report or feature requests. |
| - Asking questions in the [Discussions](https://github.com/apache/opendal/discussions/new?category=q-a). |
| - Talk to community at [Discord](https://opendal.apache.org/discord). |
| |
| ## License and Trademarks |
| |
| Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation. |