https://github.com/asomers/tokio-file
Asynchronous file I/O for Tokio
https://github.com/asomers/tokio-file
mio posix-aio rust tokio-rs
Last synced: about 1 year ago
JSON representation
Asynchronous file I/O for Tokio
- Host: GitHub
- URL: https://github.com/asomers/tokio-file
- Owner: asomers
- License: apache-2.0
- Created: 2017-03-05T21:41:51.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-11T18:27:22.000Z (about 2 years ago)
- Last Synced: 2024-05-12T18:52:36.437Z (about 2 years ago)
- Topics: mio, posix-aio, rust, tokio-rs
- Language: Rust
- Size: 6.55 MB
- Stars: 47
- Watchers: 7
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# tokio-file
A library for integrating file I/O with [tokio]. File I/O can be seamlessly
mixed with all other Future types within the Tokio reactor.
[](https://cirrus-ci.com/github/asomers/tokio-file)
[](https://crates.io/crates/tokio-file)
[Documentation](https://docs.rs/crate/tokio-file)
[tokio]: https://github.com/tokio-rs/tokio-core
```toml
# Cargo.toml
[depdendencies]
tokio = "1.0.0"
tokio-file = "0.10.0"
```
# Usage
See the `examples` directory in the repository. In general, any program that's
already using `tokio` can add file I/O by using `tokio_file::AioFileExt` and
running the resulting futures in the tokio reactor.
# Platforms
`tokio-file` version 0.10 works on FreeBSD, using the `mio-aio` crate. It will
probably also work on DragonflyBSD and OSX. It does not work on Linux. The
`tokio-file` API can be supported on Linux, but it will need a completely
different backend. Instead of using POSIX AIO as `mio-aio` does, Linux will
need a `mio-libaio` crate, that uses Linux's nonstandard libaio with an eventfd
for notifications. That's the approach taken by [seastar].
[seastar]: http://www.seastar-project.org/
# License
`tokio-file` is primarily distributed under the terms of both the MIT license
and the Apache License (Version 2.0).
See LICENSE-APACHE, and LICENSE-MIT for details.