Compare commits

...

5 Commits

Author SHA1 Message Date
Dermot Haughey ec51a85b8e
Merge 53e91588a1 into 8947d8e03c 2024-02-12 20:33:17 +00:00
Marc-Antoine Perennou 8947d8e03c
Merge pull request #1069 from Keruspe/update-deps 2024-02-12 10:39:05 +01:00
Marc-Antoine Perennou bbde18ffbd fix CI for recent rustc
Allow for unused `pub use` in experimental API which doesn't have its mods public for noiw.
MIPS CI is fully broken (doesn't find the MIPS toolchain) so disable it for now.
Reenable powerpc64 which is no longer broken
2023-11-23 15:01:15 +01:00
Marc-Antoine Perennou 1adaa09626 update async-* dependencies
Don't update async-channel as Receiver is now `!Unpin`.
2023-11-23 15:01:07 +01:00
Dermot Haughey 53e91588a1 add HTTP hello world example 2020-09-05 11:20:41 -05:00
9 changed files with 61 additions and 8 deletions

View File

@ -132,8 +132,8 @@ jobs:
target:
- i686-unknown-linux-gnu
- powerpc-unknown-linux-gnu
# - powerpc64-unknown-linux-gnu
- mips-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
# - mips-unknown-linux-gnu
- arm-linux-androideabi
steps:

View File

@ -62,7 +62,7 @@ io_safety = []
[dependencies]
async-attributes = { version = "1.1.2", optional = true }
async-lock = { version = "2.7.0", optional = true }
async-lock = { version = "3.1.0", optional = true }
crossbeam-utils = { version = "0.8.0", optional = true }
futures-core = { version = "0.3.4", optional = true, default-features = false }
futures-io = { version = "0.3.4", optional = true }
@ -80,10 +80,10 @@ surf = { version = "2.0.0", optional = true }
[target.'cfg(not(target_os = "unknown"))'.dependencies]
async-global-executor = { version = "2.3.1", optional = true, features = ["async-io"] }
async-io = { version = "1.13.0", optional = true }
futures-lite = { version = "1.0.0", optional = true }
async-process = { version = "1.7.0", optional = true }
async-global-executor = { version = "2.4.0", optional = true, features = ["async-io"] }
async-io = { version = "2.2.0", optional = true }
futures-lite = { version = "2.0.0", optional = true }
async-process = { version = "2.0.0", optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
gloo-timers = { version = "0.2.1", features = ["futures"], optional = true }

View File

@ -0,0 +1,42 @@
//! HTTP Hello World server
//!
//! To make an HTTP request do:
//!
//! ```sh
//! curl http://localhost:8080/foo
//! ```
use async_std::io;
use async_std::net::{TcpListener, TcpStream};
use async_std::prelude::*;
use async_std::task;
async fn process(stream: &mut TcpStream) -> io::Result<()> {
let msg = "HTTP/1.1 200 OK
Content-Length: 11
Content-Type: text/plain
hello world";
let mut buffer = [0; 512];
stream.read(&mut buffer).await?;
stream.write_all(msg.as_bytes()).await?;
Ok(())
}
fn main() -> io::Result<()> {
task::block_on(async {
let listener = TcpListener::bind("127.0.0.1:8080").await?;
println!("Listening on {}", listener.local_addr()?);
let mut incoming = listener.incoming();
while let Some(stream) = incoming.next().await {
let mut stream = stream?;
task::spawn(async move {
process(&mut stream).await.unwrap();
});
}
Ok(())
})
}

View File

@ -11,10 +11,17 @@ pub mod hash_set;
pub mod linked_list;
pub mod vec_deque;
#[allow(unused)]
pub use binary_heap::BinaryHeap;
#[allow(unused)]
pub use btree_map::BTreeMap;
#[allow(unused)]
pub use btree_set::BTreeSet;
#[allow(unused)]
pub use hash_map::HashMap;
#[allow(unused)]
pub use hash_set::HashSet;
#[allow(unused)]
pub use linked_list::LinkedList;
#[allow(unused)]
pub use vec_deque::VecDeque;

View File

@ -5,6 +5,7 @@
mod from_stream;
#[allow(unused)]
#[doc(inline)]
pub use std::option::Option;

View File

@ -5,6 +5,7 @@
mod from_stream;
#[allow(unused)]
#[doc(inline)]
pub use std::result::Result;

View File

@ -5,5 +5,6 @@
mod extend;
mod from_stream;
#[allow(unused)]
#[doc(inline)]
pub use std::string::String;

View File

@ -149,7 +149,7 @@ impl WakerSet {
/// Returns `true` if at least one operation was notified.
#[cold]
fn notify(&self, n: Notify) -> bool {
let mut inner = &mut *self.lock();
let inner = &mut *self.lock();
let mut notified = false;
for (_, opt_waker) in inner.entries.iter_mut() {

View File

@ -6,5 +6,6 @@
mod extend;
mod from_stream;
#[allow(unused)]
#[doc(inline)]
pub use std::vec::Vec;