tree: c5860c4f9902878328abc68e9a594710326d9418
  1. .cargo/
  2. benchmark/
  3. examples/
  4. npm/
  5. scripts/
  6. src/
  7. tests/
  8. theme/
  9. .gitignore
  10. .node-version
  11. .npmignore
  12. .npmrc
  13. .prettierignore
  14. build.rs
  15. Cargo.toml
  16. CONTRIBUTING.md
  17. DEPENDENCIES.md
  18. DEPENDENCIES.rust.tsv
  19. devbox.json
  20. devbox.lock
  21. generated.d.ts
  22. generated.js
  23. index.cjs
  24. index.d.ts
  25. index.mjs
  26. package.json
  27. pnpm-lock.yaml
  28. README.md
  29. tsconfig.json
  30. tsconfig.theme.json
  31. typedoc.json
  32. upgrade.md
  33. vitest.config.mjs
bindings/nodejs/README.md

Apache OpenDALâ„¢ Node.js Binding

npm Website

A native Node.js binding for Apache OpenDAL: access S3, GCS, Azure Blob, HDFS, the local filesystem, and 50+ more services through one API.

Note: This binding has its own independent version number, which may differ from the Rust core version. When checking for updates or compatibility, always refer to this binding's version rather than the core version.

Useful Links

Installation

npm install opendal

Quickstart

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();

The API is promise-based; every operation has a synchronous *Sync variant too. For configuring backends, streaming, layers (retry, timeout, logging, throttle, concurrency limits), presigned URLs, and Next.js usage, see the full user guide.

Contributing

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.