PackageTrack
Sign in Get early access

node_interop

Provides Dart bindings and utility functions for core Node.js modules.

2.2.0 184K downloads/mo #883 most downloaded on pub.dev pulyaevskiy/node-interop

What this package is like to depend on

Last release 1 years ago

28 Mar 2025

Ships unpredictably

gaps range from 8 days to 3.5 years

Nearly every release is documented

notes for 20 of 22 stable releases

Nothing withdrawn

no release was ever pulled

9 years old

47 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

47 releases · Jun 2017 to Mar 2025
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 47
  1. 2.2.0 28 Mar 2025
    Release notes
    • Add support for fs.realpath.native() and fs.realpathSync.native().
    Open source →
  2. 2.1.0 22 Sep 2021
    Release notes
    • Mark the first argument to Promise.then() as nullable.
    Open source →
  3. 2.0.2 24 May 2021
    Release notes
    • Various fs APIs now accept options.

      • fs.appendFile, fs.mkdtemp, fs.readdir, fs.readlink, and fs.realpath, and fs.writeFile accept a FileOptions object.

      • fs.fstat and fs.lstat accept a StatOptions object.

      • fs.mkdir accepts a MkdirOptions object.

      • fs.rmdir accepts a RmdirOptions object.

      • fs.watch accepts a WatchOptions object.

      • fs.watchFile accepts a WatchFileOptions object.

      • Synchronous equivalents of the above also accept the same options.

    Open source →
  4. 2.0.1 20 Apr 2021
    Release notes
    • Fix improper types for util.callbackToCompleter(), util.invokeAsync0(), and util.invokeAsync1().
    Open source →
  5. 2.0.0 12 Apr 2021
    Release notes
    • Enable null-safety (requires >=Dart 2.12).
    Open source →
  6. 2.0.0-nullsafety.0 12 Apr 2021 pre-release
    Release notes
    • Migrated to null-safety (requires >=Dart 2.12).
    Open source →
  7. 1.2.1 21 Nov 2020
    Release notes
    • Add util.callbackToCompleter(), util.invokeAsync0(), and util.invokeAsync1() helpers to make it easier to work with Node-style callbacks.
    Open source →
  8. 1.2.0 30 Oct 2020
    Release notes
    • Added worker_threads module bindings (#84)
    • Added interop for Atomics (#85)
    Open source →
  9. 1.1.1 13 May 2020
    Release notes
    • Added missing method definitions for TTYWriteStream.
    Open source →
  10. 1.1.0 12 May 2020
    Release notes
    • Added bindings for Node.js tty module as well as updated Process bindings for stdout, stdin and stderr to return TTY stream types instead of Writable and Readable.
    Open source →
  11. 1.0.3 22 May 2019
    Release notes
    • Removed generic annotations from Process methods per #56 (not supported by Dart yet).
    • Added util.inspect binding.
    Open source →
  12. 1.0.2 17 May 2019
    Release notes
    • Clarified documentation of dartify regarding conversion of JS object keys (#52).
    Open source →
  13. 1.0.1 09 May 2019
    Release notes
    • Fixed declaration of fs.writeSync and fs.readSync to return int instead of void.
    Open source →
  14. 1.0.0 20 Nov 2018
    Release notes

    No functional changes in this version, it is published to replace obsolete 0.0.7 version on the Pub's package homepage to improve discoverability.

    Ongoing work will continue in 1.0.0-dev.* branch until it's considered stable and feature complete. Make sure to checkout recent dev version for latest updates.

    Non-breaking changes may be published to the stable track periodically.

    Open source →
  15. 1.0.0-dev.13.0 01 Nov 2018 pre-release
    Release notes
    • Added HttpsAgentOptions with basic TLS/SSL parameters.
    • Breaking: createHttpsAgent() now expects instance of HttpsAgentOptions instead of HttpAgentOptions.
    Open source →
  16. 1.0.0-dev.12.0 23 Oct 2018 pre-release
    Release notes
    • Fixed Console method bindings to not force String arguments and allow any type.
    • Breaking: Updated JsError constructor definition to match Node.js documentation.
    Open source →
  17. 1.0.0-dev.11.0 05 Oct 2018 pre-release
    Release notes
    • Upgraded to build_node_compilers 0.2.0
    Open source →
  18. 1.0.0-dev.10.0 09 Aug 2018 pre-release
    Release notes
    • Internal changes.
    Open source →
  19. 1.0.0-dev.9.0 24 Jul 2018 pre-release
    Release notes
    • Fixed analysis warnings.
    Open source →
  20. 1.0.0-dev.8.0 22 Jun 2018 pre-release
    Release notes
    • Upgraded to latest build_node_compilers.
    Open source →
  21. 1.0.0-dev.7.0 06 Jun 2018 pre-release
    Release notes
    • Fixed: Changed ServerResponse.getHeader return type from String to dynamic.
    Open source →
  22. 1.0.0-dev.6.0 08 Mar 2018 pre-release
    Release notes
    • Added: binding for JS undefined value in node_interop/js.dart.
    Open source →
  23. 1.0.0-dev.5.0 07 Mar 2018 pre-release
    Release notes
    • Fixed: strong mode issue in dartify utility function when converting plain JS objects to Dart Map. Returned map is now of type Map<String, dynamic> instead of Map.
    Open source →
  24. 1.0.0-dev.4.0 01 Mar 2018 pre-release
    Release notes
    • Fixed: strong mode issue in promiseToFuture utility function.
    • Fixed: signature of fs.realpathSync.
    Open source →
  25. 1.0.0-dev.3.0 20 Feb 2018 pre-release
    Release notes
    • Added or completed bindings for following Node.js modules: dns, events, fs, http, https, module, net, os, path, process, querystring, stream, timers, tls.
    • Added more examples and tests.
    Open source →
  26. 1.0.0-dev.2.0 14 Feb 2018 pre-release
    Release notes
    • Completed dns module function definitions (still missing data structures).
    Open source →
  27. 1.0.0-dev.1.0 09 Feb 2018 pre-release
    Release notes

    Breaking changes:

    • node_interop depends on Dart 2 SDK which allows us to leverage new build_runner system and move away from Pub transformers.
    • Removed Pub transformer, which means you shouldn't need it in your pubspec.yaml anymore. Build system is now based on build package. See docs for more details.
    • node_interop no longer exports Dart-specific abstractions like an HTTP client or FileSystem. These abstractions have been moved to separate packages: node_io and node_http. This way node_interop now only exposes JS bindings for Node and some utility functions.
    • library structure is changed to map closer to built-in Node modules. There is a separate file for each module which exposes that module's bindings, e.g. fs.dart, http.dart.
    • node object has been removed. Can use require and exports functions directly. There is also new convenience function setExport.
    • jsPromiseToFuture renamed to promiseToFuture.
    • futureToJsPromise renamed to futureToPromise.
    • jsObjectKeys renamed to objectKeys.
    • dartify now allows converting JS function objects.
    • `JsPromise
    Open source →
  28. 1.0.0-dev.1.0+1 13 Feb 2018 pre-release
    Release notes
    • Minor internal changes.
    Open source →
  29. 0.1.0-beta.9 23 Jan 2018 pre-release
    Release notes
    • Added library-level get function to http.dart.
    Open source →
  30. 0.1.0-beta.8 22 Jan 2018 pre-release
    Release notes
    • Introduced new io.dart library designed to follow dart:io contract.
    • Breaking: renamed HttpRequest exposed by http.dart to NodeHttpRequest. This is a server-side request object which will eventually be hidden from this library. It is recommended to import new io.dart which exposes both HttpRequest and NodeHttpRequest objects.
    Open source →
  31. 0.1.0-beta.8+1 22 Jan 2018 pre-release
    Release notes
    • Updated changelog.
    Open source →
  32. 0.1.0-beta.7 19 Dec 2017 pre-release
    Release notes
    • Fix HttpHeaders.forEach crash when called on HttpRequest.headers [#6]
    Open source →
  33. 0.1.0-beta.6 22 Oct 2017 pre-release
    Release notes
    • Breaking:
      • renamed ReadableStream.nativeStream to ReadableStream.nativeInstance
      • renamed WritableStream.nativeStream to WritableStream.nativeInstance
    • New:
      • Added jsonStringify and jsonParse which bind to native JSON.stringify and JSON.parse respectively.
    Open source →
  34. 0.1.0-beta.5 21 Oct 2017 pre-release
    Release notes
    • Fixed: HttpResponse.close() failed when trying to finalize headers.
    Open source →
  35. 0.1.0-beta.4 17 Oct 2017 pre-release
    Release notes
    • Made Promise<T> a generic type. Also added definition of Thenable.
    • onRejected in Promise.then is now optional.
    • Added explicit type to node variable.
    Open source →
  36. 0.1.0-beta.3 15 Oct 2017 pre-release
    Release notes
    • More updates to bindings.
    • Added new async.dart library with basic implementations of ReadableStream<T>, WritableStream<T> and NodeIOSink.
    • Added implementations of server side HttpRequest and HttpResponse to http.dart, as well some other objects like HttpHeaders.
    • Added dartifyError(JsError error) to the main library which converts from JS Error instances in to Dart's equivalent.
    • Implemented more methods in File: openRead, openWrite, readAsBytes.
    • Deprecated createJSFile in test.dart library. Use createFile instead.
    Open source →
  37. 0.1.0-beta.2 11 Oct 2017 pre-release
    Release notes
    • jsObjectToMap deprecated. There is new helper function dartify. See documentation for more details.
    • New jsify helper function.
    • Clarified type of HTTP server requestListener.
    • New createJSFile test util in test.dart.
    Open source →
  38. 0.1.0-beta.1 09 Oct 2017 pre-release
    Release notes
    • Breaking changes:
      • NodePlatform is no longer exported from node_interop.dart library.
      • Library-level exports getter was removed. Now exports is a direct reference to native JS object. Replace any calls to exports.setProperty(name, value) with new API: node.export(name, value).
      • "http" module: Agent, Server, AgentOptions renamed to HttpAgent, HttpServer, HttpAgentOptions respectively.
      • "http" module: createAgent renamed to createHttpAgent.
      • node_interop/bindings.dart was removed. All bindings are available through main node_interop/node_interop.dart import.
    • New:
      • Many updates to documentation.
      • Main package's library now exposes all (implemented) Node API bindings.
      • New node library object with centralized access to the Node platform and runtime information, as well as module globals like require and exports.
      • Exposed parts of "https", "tls", "dns" and "net" module bindings.
      • Added HTTPS support to NodeClient from node_interop/http.dart.
      • Updated examples.
      • Gitter channel is now up: https://gitter.im/pulyaevskiy/node-interop.
    Open source →
  39. 0.0.7 04 Oct 2017
    Release notes
    • Added node_interop/test.dart library with installNodeModules() helper function. See dartdoc for more details.
    Open source →
  40. 0.0.6 03 Oct 2017
    Release notes
    • jsObjectToMap: added null-check.
    • Added basic HTTP client implementation for Node, based on an interface from 'http' package. Use with import package:node_interop/http.dart.
    Open source →
  41. 0.0.5 01 Oct 2017
    Release notes
    • Streamlined bindings layer and exposed as it's own library. Use import package:node_interop/bindings.dart to get access.
    • Added bindings for 'http' module (work in progress).
    Open source →
  42. 0.0.4 08 Jul 2017
    Release notes
    • Upgraded to test package with support for running tests in Node
    • Implemented NodeFileSystem.file() and File.writeAsStringSync().
    Open source →
  43. 0.0.3 02 Jul 2017
    Release notes
    • Added bindings for Console.
    Open source →
  44. 0.0.2 30 Jun 2017
    Release notes
    • Switched to use official node_preamble package
    Open source →
  45. 0.0.1 18 Jun 2017
    Release notes
    • Initial version
    Open source →
  46. 0.0.1+1 18 Jun 2017

    Nothing published for this version

  47. 0.0.1+2 18 Jun 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive