summaryrefslogtreecommitdiffstats
path: root/examples
AgeCommit message (Collapse)Author
2019-11-15Limit `futures` dependency to `Stream` via feature flag (#1774)Carl Lerche
In an effort to reach API stability, the `tokio` crate is shedding its _public_ dependencies on crates that are either a) do not provide a stable (1.0+) release with longevity guarantees or b) match the `tokio` release cadence. Of course, implementing `std` traits fits the requirements. The on exception, for now, is the `Stream` trait found in `futures_core`. It is expected that this trait will not change much and be moved into `std. Since Tokio is not yet going reaching 1.0, I feel that it is acceptable to maintain a dependency on this trait given how foundational it is. Since the `Stream` implementation is optional, types that are logically streams provide `async fn next_*` functions to obtain the next value. Avoiding the `next()` name prevents fn conflicts with `StreamExt::next()`. Additionally, some misc cleanup is also done: - `tokio::io::io` -> `tokio::io::util`. - `delay` -> `delay_until`. - `Timeout::new` -> `timeout(...)`. - `signal::ctrl_c()` returns a future instead of a stream. - `{tcp,unix}::Incoming` is removed (due to lack of `Stream` trait). - `time::Throttle` is removed (due to lack of `Stream` trait). - Fix: `mpsc::UnboundedSender::send(&self)` (no more conflict with `Sink` fns).
2019-11-07chore: update futures to 0.3.0 (#1741)Taiki Endo
2019-10-22codec: move into tokio-util (#1675)Carl Lerche
Related to #1318, Tokio APIs that are "less stable" are moved into a new `tokio-util` crate. This crate will mirror `tokio` and provide additional APIs that may require a greater rate of breaking changes. As examples require `tokio-util`, they are moved into a separate crate (`examples`). This has the added advantage of being able to avoid example only dependencies in the `tokio` crate.
2019-03-22chore: Fix examples not working with `cargo run` (#998)Eliza Weisman
* chore: Fix examples not working with `cargo run` ## Motivation PR #991 moved the `tokio` crate to its own subdirectory, but did not move the `examples` directory into `tokio/examples`. While attempting to use the examples for testing another change, I noticed that #991 had broken the ability to use `cargo run`, as the examples were no longer considered part of a crate that cargo was aware of: ``` tokio on master [$] via 🦀v1.33.0 at ☸️ aks-eliza-dev ➜ cargo run --example chat error: no example target named `chat` Did you mean `echo`? ``` ## Solution This branch moves the examples into the `tokio` directory, so cargo is now once again aware of them: ``` tokio on eliza/fix-examples [$] via 🦀v1.33.0 at ☸️ aks-eliza-dev ➜ cargo run --example chat Compiling tokio-executor v0.1.7 (/Users/eliza/Code/tokio/tokio-executor) Compiling tokio-reactor v0.1.9 Compiling tokio-threadpool v0.1.13 Compiling tokio-current-thread v0.1.6 Compiling tokio-timer v0.2.10 Compiling tokio-uds v0.2.5 Compiling tokio-udp v0.1.3 Compiling tokio-tcp v0.1.3 Compiling tokio-fs v0.1.6 Compiling tokio v0.1.18 (/Users/eliza/Code/tokio/tokio) Finished dev [unoptimized + debuginfo] target(s) in 7.04s Running `target/debug/examples/chat` server running on localhost:6142 ``` Signed-off-by: Eliza Weisman <eliza@buoyant.io> Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2019-02-21chore: apply rustfmt to all crates (#917)Carl Lerche
2018-12-29examples: single-threaded chat combinator example (#794)jq-rs
2018-11-28examples: remove reference to tokio-core (#780)Carl Lerche
2018-11-20tests: handle errors properly in examples (#748)Liran Ringel
2018-10-12tokio: change hello world to new, simpler example (#690)Ryan Levick
2018-09-26tinydb: Update doc to reflect change from `RefCell` to `Mutex` (#663)Andrew Tunnell-Jones
Fixes: #658
2018-08-25Spelling fixes (#571)Ben Boeckel
* docs: fix spelling and whitespace errors
2018-08-14Reexport Encoder, Decoder, Framed* from tokio::codec (#499)Roman
2018-06-13Typo (#415)Sylwek
2018-06-12Deprecate executor re-exports (#412)Carl Lerche
2018-06-04Create tokio-codec (#360)Bryan Burgers
Create a new tokio-codec crate with many of the contents of `tokio_io::codec`.
2018-05-29Include a manually built runtime example (#306)Michal 'vorner' Vaner
2018-05-14Fix typo in doc comment. (#361)Jason Davies
2018-05-08Fix typos (#348)Julian Tescher
2018-04-10Add example that prints each packet from tcp client (#301)Roman
2018-04-02fix panic in chat example (#279)laizy
2018-03-22Fix `connect` example for UDP (#241)Denis
Close #241
2018-03-22Add UDP client example (send/recv_dgram) (#239)Denis
2018-03-15Fix condition for updating the current date buffer (#230)Hiroaki Nakamura
2018-03-12Update comment in udp-codec example (#222)Gray Olson
2018-03-09Fix wrong file link in examples readme.md (#208)Tosil Velkov
2018-03-08Improve the chat example, making it more robust (#199)Carl Lerche
This handles cases where clients send large amounts of data while on localhost. Closes #192
2018-03-07Update readme (#196)Carl Lerche
2018-03-06Fix some comments in the examples. (#187)Carl Lerche
The PR that updated the examples skipped some comments. This patch updates thhe comments.
2018-03-06Update examples to track latest Tokio changes (#180)Carl Lerche
The exampes included in the repository have lagged behind the changes made. Specifically, they do not use the new runtime construct. This patch updates examples to use the latest features of Tokio.
2018-03-04Switch TCP/UDP fns to poll_ -> Poll<...> style (#175)Carl Lerche
Tokio is moving away from using `WouldBlock`, instead favoring `Async::NotReady`. This patch updates the TCP and UDP types, deprecating any function that returns `WouldBlock` and adding a poll_ prefixed equivalent.
2018-02-21Introduce the Tokio runtime: Reactor + Threadpool (#141)Carl Lerche
This patch is an intial implementation of the Tokio runtime. The Tokio runtime provides an out of the box configuration for running I/O heavy asynchronous applications. As of now, the Tokio runtime is a combination of a work-stealing thread pool as well as a background reactor to drive I/O resources. This patch also includes tokio-executor, a hopefully short lived crate that is based on the futures 0.2 executor RFC. * Implement `Park` for `Reactor` This enables the reactor to be used as the thread parker for executors. This also adds an `Error` component to `Park`. With this change, a `Reactor` and a `CurrentThread` can be combined to achieve the capabilities of tokio-core.
2018-02-08Fix example doc comment (#124)Carl Lerche
Fixes #123
2018-02-07Remove `framed` fn from `UdpSocket` (#116)Carl Lerche
Instead, use `UdpFramed::new` to create a framed wrapper around the UDP socket.
2018-02-06Remove UdpCodec (#109)Roman
`UdpFramed` is updated to use the `Encoder` and `Decoder` traits from `tokio-io`.
2018-02-06Switch back to futures from crates.io (#113)Carl Lerche
Doing so requires copying the `current_thread` executor from GitHub into the repo.
2018-02-05Add a chat example (#112)Carl Lerche
2018-02-01Track futures tokio-reform branch (#88)Carl Lerche
This patch also updates tests and examples to remove deprecated API usage.
2018-01-31Poll evented mutability (#37)Carl Lerche
Generally speaking, it is unsafe to access to perform asynchronous operations using `&self`. Taking `&self` allows usage from a `Sync` context, which has unexpected results. Taking `&mut self` to perform these operations prevents using these asynchronous values from across tasks (unless they are wrapped in `RefCell` or `Mutex`.
2018-01-30Change `net::Incoming` signature to match std. (#89)Carl Lerche
std's `Incoming` iterator yields `TcpStream` instances. This patch updates the `Incoming` future to match this signature. This changes the yielded value from `(TcpStream, SocketAddr)` -> `TcpStream`.
2018-01-26Merge remote-tracking branch 'core/master' into new-crateCarl Lerche
2018-01-16Fix UdpCodec::encode (#85)Roman
* Refactor UDP SendDgram & RecvDgram Get rid of unnamed structs in the favor of private structs with named fields * Change the signature of UdpCodec::encode Now it is: ``` fn encode(&mut self, msg: Self::Out, buf: &mut Vec<u8>) -> Result<SocketAddr, Self::Error>; ``` Closes https://github.com/tokio-rs/tokio/issues/79 * Fix compilation error from `mio` crate
2018-01-02Bump dependencies (#289)Bastien Orivel
2017-12-12Remove `Handle` argument from I/O constructors (#61)Alex Crichton
This commit removes the `Handle` argument from the following constructors * `TcpListener::bind` * `TcpStream::connect` * `UdpSocket::bind` The `Handle` argument remains on the various `*_std` constructors as they're more low-level, but this otherwise is intended to set forth a precedent of by default not taking `Handle` arguments and instead relying on the global `Handle::default` return value when necesary.
2017-12-11Remove the `Reactor::run` method (#58)Alex Crichton
This commit removes the `Reactor::run` method which has previously been used to execute futures and turn the reactor at the same time. The tests/examples made heavy usage of this method but they have now all temporarily moved to `wait()` until the futures dependency is upgraded. In the meantime this'll allow us to further trim down the `Reactor` APIs to their final state.
2017-12-05Blanket rename `Core` to `Reactor`Alex Crichton
This commit uses a script to rename `Core` to `Reactor` all at once, notably: find . -name '*.rs' | xargs sed -i 's/\bCore\b/Reactor/g'
2017-12-05Rename networking constructors with `_std`Alex Crichton
This commit renames the various constructors of networking types to have a `_std` suffix instead of a smorgasboard of other suffixes, canonicalizing on `_std` as the suffix for constructors which take the libstd corresponding types.
2017-12-01Remove unused code (#44)Thomas de Zeeuw
* remove unused #[macro_use] and #[allow(unused_macros)] * remove unused FnBox trait * remove unused temporary variable * remove Evented trait requirement to implement Debug
2017-11-06Merge remote-tracking branch 'core/master' into new-crateCarl Lerche
2017-11-06Don't unwrap accepted connectionsAlex Crichton
Helps avoid spurious errors when testing. Closes #277
2017-11-01Remove executor from reactor.Carl Lerche
In accordance with tokio-rs/tokio-rfcs#3, the executor functionality of Tokio is being removed and will be relocated into futures-rs as a "current thread" executor. This PR removes task execution from the code base. As a temporary mesure, all examples and tests are switched to using CpuPool. Depends on #19.