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 2025Releases
latest 47-
2.2.028 Mar 2025 -
2.1.022 Sep 2021 -
2.0.224 May 2021Release notes
Open source →-
Various
fsAPIs now accept options.-
fs.appendFile,fs.mkdtemp,fs.readdir,fs.readlink, andfs.realpath, andfs.writeFileaccept aFileOptionsobject. -
fs.fstatandfs.lstataccept aStatOptionsobject. -
fs.mkdiraccepts aMkdirOptionsobject. -
fs.rmdiraccepts aRmdirOptionsobject. -
fs.watchaccepts aWatchOptionsobject. -
fs.watchFileaccepts aWatchFileOptionsobject. -
Synchronous equivalents of the above also accept the same options.
-
-
-
2.0.120 Apr 2021Release notes
Open source →- Fix improper types for
util.callbackToCompleter(),util.invokeAsync0(), andutil.invokeAsync1().
- Fix improper types for
-
2.0.012 Apr 2021 -
2.0.0-nullsafety.012 Apr 2021 pre-release -
1.2.121 Nov 2020Release notes
Open source →- Add
util.callbackToCompleter(),util.invokeAsync0(), andutil.invokeAsync1()helpers to make it easier to work with Node-style callbacks.
- Add
-
1.2.030 Oct 2020Release notes
Open source →- Added worker_threads module bindings (#84)
- Added interop for Atomics (#85)
-
1.1.113 May 2020 -
1.1.012 May 2020Release notes
Open source →- Added bindings for Node.js
ttymodule as well as updated Process bindings forstdout,stdinandstderrto return TTY stream types instead ofWritableandReadable.
- Added bindings for Node.js
-
1.0.322 May 2019Release notes
Open source →- Removed generic annotations from Process methods per #56 (not supported by Dart yet).
- Added
util.inspectbinding.
-
1.0.217 May 2019Release notes
Open source →- Clarified documentation of
dartifyregarding conversion of JS object keys (#52).
- Clarified documentation of
-
1.0.109 May 2019Release notes
Open source →- Fixed declaration of
fs.writeSyncandfs.readSyncto returnintinstead ofvoid.
- Fixed declaration of
-
1.0.020 Nov 2018Release notes
Open source →No functional changes in this version, it is published to replace obsolete
0.0.7version 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.
-
1.0.0-dev.13.001 Nov 2018 pre-releaseRelease notes
Open source →- Added
HttpsAgentOptionswith basic TLS/SSL parameters. - Breaking: createHttpsAgent() now expects instance of
HttpsAgentOptionsinstead ofHttpAgentOptions.
- Added
-
1.0.0-dev.12.023 Oct 2018 pre-releaseRelease notes
Open source →- Fixed Console method bindings to not force
Stringarguments and allow any type. - Breaking: Updated
JsErrorconstructor definition to match Node.js documentation.
- Fixed Console method bindings to not force
-
1.0.0-dev.11.005 Oct 2018 pre-release -
1.0.0-dev.10.009 Aug 2018 pre-release -
1.0.0-dev.9.024 Jul 2018 pre-release -
1.0.0-dev.8.022 Jun 2018 pre-release -
1.0.0-dev.7.006 Jun 2018 pre-releaseRelease notes
Open source →- Fixed: Changed
ServerResponse.getHeaderreturn type fromStringtodynamic.
- Fixed: Changed
-
1.0.0-dev.6.008 Mar 2018 pre-release -
1.0.0-dev.5.007 Mar 2018 pre-releaseRelease notes
Open source →- Fixed: strong mode issue in
dartifyutility function when converting plain JS objects to DartMap. Returned map is now of typeMap<String, dynamic>instead ofMap.
- Fixed: strong mode issue in
-
1.0.0-dev.4.001 Mar 2018 pre-releaseRelease notes
Open source →- Fixed: strong mode issue in
promiseToFutureutility function. - Fixed: signature of
fs.realpathSync.
- Fixed: strong mode issue in
-
1.0.0-dev.3.020 Feb 2018 pre-releaseRelease notes
Open source →- 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.
- Added or completed bindings for following Node.js modules:
-
1.0.0-dev.2.014 Feb 2018 pre-releaseRelease notes
Open source →- Completed
dnsmodule function definitions (still missing data structures).
- Completed
-
1.0.0-dev.1.009 Feb 2018 pre-releaseRelease notes
Open source →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.yamlanymore. Build system is now based onbuildpackage. 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_ioandnode_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. nodeobject has been removed. Can userequireandexportsfunctions directly. There is also new convenience functionsetExport.jsPromiseToFuturerenamed topromiseToFuture.futureToJsPromiserenamed tofutureToPromise.jsObjectKeysrenamed toobjectKeys.dartifynow allows converting JSfunctionobjects.- `JsPromise
-
1.0.0-dev.1.0+113 Feb 2018 pre-release -
0.1.0-beta.923 Jan 2018 pre-release -
0.1.0-beta.822 Jan 2018 pre-releaseRelease notes
Open source →- Introduced new
io.dartlibrary designed to followdart:iocontract. - Breaking: renamed
HttpRequestexposed byhttp.darttoNodeHttpRequest. This is a server-side request object which will eventually be hidden from this library. It is recommended to import newio.dartwhich exposes bothHttpRequestandNodeHttpRequestobjects.
- Introduced new
-
0.1.0-beta.8+122 Jan 2018 pre-release -
0.1.0-beta.719 Dec 2017 pre-release -
0.1.0-beta.622 Oct 2017 pre-releaseRelease notes
Open source →- Breaking:
- renamed
ReadableStream.nativeStreamtoReadableStream.nativeInstance - renamed
WritableStream.nativeStreamtoWritableStream.nativeInstance
- renamed
- New:
- Added
jsonStringifyandjsonParsewhich bind to nativeJSON.stringifyandJSON.parserespectively.
- Added
- Breaking:
-
0.1.0-beta.521 Oct 2017 pre-release -
0.1.0-beta.417 Oct 2017 pre-releaseRelease notes
Open source →- Made
Promise<T>a generic type. Also added definition ofThenable. onRejectedinPromise.thenis now optional.- Added explicit type to
nodevariable.
- Made
-
0.1.0-beta.315 Oct 2017 pre-releaseRelease notes
Open source →- More updates to bindings.
- Added new
async.dartlibrary with basic implementations ofReadableStream<T>,WritableStream<T>andNodeIOSink. - Added implementations of server side
HttpRequestandHttpResponsetohttp.dart, as well some other objects likeHttpHeaders. - Added
dartifyError(JsError error)to the main library which converts from JSErrorinstances in to Dart's equivalent. - Implemented more methods in
File:openRead,openWrite,readAsBytes. - Deprecated
createJSFileintest.dartlibrary. UsecreateFileinstead.
-
0.1.0-beta.211 Oct 2017 pre-releaseRelease notes
Open source →jsObjectToMapdeprecated. There is new helper functiondartify. See documentation for more details.- New
jsifyhelper function. - Clarified type of HTTP server
requestListener. - New
createJSFiletest util intest.dart.
-
0.1.0-beta.109 Oct 2017 pre-releaseRelease notes
Open source →- Breaking changes:
NodePlatformis no longer exported fromnode_interop.dartlibrary.- Library-level
exportsgetter was removed. Nowexportsis a direct reference to native JS object. Replace any calls toexports.setProperty(name, value)with new API:node.export(name, value). - "http" module:
Agent,Server,AgentOptionsrenamed toHttpAgent,HttpServer,HttpAgentOptionsrespectively. - "http" module:
createAgentrenamed tocreateHttpAgent. node_interop/bindings.dartwas removed. All bindings are available through mainnode_interop/node_interop.dartimport.
- New:
- Many updates to documentation.
- Main package's library now exposes all (implemented) Node API bindings.
- New
nodelibrary object with centralized access to the Node platform and runtime information, as well as module globals likerequireandexports. - Exposed parts of "https", "tls", "dns" and "net" module bindings.
- Added HTTPS support to
NodeClientfromnode_interop/http.dart. - Updated examples.
- Gitter channel is now up: https://gitter.im/pulyaevskiy/node-interop.
- Breaking changes:
-
0.0.704 Oct 2017Release notes
Open source →- Added
node_interop/test.dartlibrary withinstallNodeModules()helper function. See dartdoc for more details.
- Added
-
0.0.603 Oct 2017Release notes
Open source →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.
-
0.0.501 Oct 2017Release notes
Open source →- Streamlined bindings layer and exposed as it's own library. Use
import package:node_interop/bindings.dartto get access. - Added bindings for 'http' module (work in progress).
- Streamlined bindings layer and exposed as it's own library. Use
-
0.0.408 Jul 2017Release notes
Open source →- Upgraded to
testpackage with support for running tests in Node - Implemented
NodeFileSystem.file()andFile.writeAsStringSync().
- Upgraded to
-
0.0.302 Jul 2017 -
0.0.230 Jun 2017 -
0.0.118 Jun 2017 -
0.0.1+118 Jun 2017Nothing published for this version
-
0.0.1+218 Jun 2017Nothing published for this version