universal_io 0.1.1 copy "universal_io: ^0.1.1" to clipboard
universal_io: ^0.1.1 copied to clipboard

outdated

Supports a subset of 'dart:io' in all platforms, including the browser.

Introduction #

A Dart package that supports a subset of dart:io in all platforms, including the browser (where it normally doesn't work).

Typically you just import "package:universal_io/io.dart" (instead of "dart:io"):

  • In the Dart VM and Flutter, the library exports dart:io.
  • In browser: the library exports its own, compatible classes.

Licensed under the MIT License. Much of the source code was adopted from the original 'dart:io' in Dart SDK, which was licensed under a BSD-style license. See LICENSE for all licenses.

Development #

Features #

  • Platform information
    • Information such as operating system, locale, and stdin/stdout. You can override the behavior.
  • HTTP client
    • In browser, the connection to the server is established only after you have committed request body by calling HttpClientRequest method close().
  • File access
    • In browsers, access to all directories and files is denied. You can override the behavior.
  • Sockets

Getting started #

Add dependency #

In pubspec.yaml:

dependencies:
  universal_io: ^0.1.0

Override behavior #

import 'dart:async';

import 'package:universal_io/io.dart';
import 'package:universal_io/io_driver.dart';

void main() async {
  // Set IO driver
  IODriver.zoneLocal.defaultValue = new MyDriver();

  // Do something
  final socket = await Socket.connect("google.com", 80);
  socket.close();
}

class MyDriver extends IODriver {
  @override
  Future<Socket> connectSocket(host, int port,
      {sourceAddress, Duration timeout}) {
    print("Attempting to connect to '$host:$port'");
    return super.connectSocket(host, port);
  }
}

Use Chrome OS driver #

import 'package:universal_io/io.dart';
import 'package:universal_io/io_driver.dart';
import 'package:universal_io_for_chrome_os/io_driver_chrome_os.dart';

void main() async {
  // Use Chrome OS driver for IO
  IODriver.zoneLocal.defaultValue = new ChromeIODriver();
  
  // ...
}
212
likes
0
pub points
99%
popularity

Publisher

verified publisherdint.dev

Supports a subset of 'dart:io' in all platforms, including the browser.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

http, raw, stream_channel, typed_data

More

Packages that depend on universal_io