# universal_io 0.1.0

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




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.ir
flutter pub add 'universal_io:0.1.0'
```
Published: 2019-02-18T13:57:26.157075Z
Expected archive SHA-256: adeca9748c95d713e9b244d5278c69155cac14e368e002dc5f01e2f421128b76

Available in cache; verification: upstream_checksum
## Direct dependencies
- http: ^0.12.0
- stream_channel: ^1.6.8
- typed_data: ^1.1.6

## Package README (untrusted upstream documentation)
# Introduction
A [Dart](https://dartlang.org) package that supports a subset of [dart:io](https://api.dartlang.org/stable/2.1.1/dart-io/dart-io-library.html) 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](LICENSE).
A lot of the source code was adopted from the original 'dart:io' in [Dart SDK](https://github.com/dart-lang/sdk),
which was licensed under a BSD-style license.

## Features
  * __Platform information__
    * Operating system, locale, terminal, etc.
  * __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 browser, access to all directories and files is denied.
  * __Sockets__
    * In browser, all methods throw _UnimplementedError_.

# Getting started
## Add dependency
In `pubspec.yaml`:
```yaml
dependencies:
  universal_io: ^0.1.0
```

## Override behavior
```dart
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);
  }
}
```
## Changelog
## 0.1.0

* Added sockets, overrides, and other features.

## 0.0.1

* Initial release.






 
