{"id":19756783,"url":"https://github.com/thebracket/ardan-1hourasync","last_synced_at":"2025-04-30T12:30:33.917Z","repository":{"id":186745783,"uuid":"672303798","full_name":"thebracket/Ardan-1HourAsync","owner":"thebracket","description":"Code accompanying the 1 Hour Dive into Async live stream.","archived":false,"fork":false,"pushed_at":"2023-08-07T13:21:45.000Z","size":2899,"stargazers_count":69,"open_issues_count":0,"forks_count":21,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-06T01:41:21.615Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thebracket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-29T16:01:02.000Z","updated_at":"2025-02-02T15:01:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fee5bfe-398c-43d6-a5ff-4f8f7da0af7e","html_url":"https://github.com/thebracket/Ardan-1HourAsync","commit_stats":null,"previous_names":["thebracket/ardan-1hourasync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebracket%2FArdan-1HourAsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebracket%2FArdan-1HourAsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebracket%2FArdan-1HourAsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thebracket%2FArdan-1HourAsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thebracket","download_url":"https://codeload.github.com/thebracket/Ardan-1HourAsync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251701721,"owners_count":21629889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:16:53.879Z","updated_at":"2025-04-30T12:30:33.227Z","avatar_url":"https://github.com/thebracket.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1 Hour Async\n\n![](./images/ardanlabs-logo.png)\n\nThis is the code accompanying the 1 Hour Dive into Async live-stream.\n\n* The slides are [here](./1-Hour-Async-Deep-Dive.pdf)\n* You can watch the recorded event [on YouTube](https://www.youtube.com/watch?v=0HwrZp9CBD4)\n\n## Included Projects\n\n1. [Block On with Futures](./futures_block_on/). Using `block_on` to start an async runtime.\n2. [Block On with Tokio](./tokio_block_on/). Using `block_on` with options to start a Tokio runtime.\n3. [Hello Tokio](./hello_tokio/). Start a runtime and `await` your first function.\n4. [Tokio Joining](./tokio_join/). Using `join` to run multiple tasks concurrently. Switch between single-threaded and multi-threaded execution to see the difference in output.\n5. [Tokio Spawn](./tokio_spawn/). Spawn tasks in the background, either detached or for access later.\n6. [Tokio Yield](./tokio_yield/). Yield control from an async task, to ensure another one can run.\n7. [Tokio Select](./tokio_select/). Select the first of several futures to return.\n8. [Tokio Blocking](./tokio_blocking/). The right way and the wrong way to perform a blocking function in Tokio.\n9. [Tokio Spawn Blocking](./tokio_spawn_blocking/). Spawn a blocking function in the background without tying up the Tokio runtime.\n10. [Tokio MPSC Channels](./tokio_channels/). Create an async channel between tasks.\n11. [Tokio Multiple Channels](./tokio_multi_channels/). Create several channels and select the first one to return.\n12. [Thread to Tokio](./thread_to_tokio/). Send messages from a thread and into an async process.\n13. [Tokio Stream Generators](./tokio_stream_generator/). You can use streams as generators.\n14. [Tokio File IO as a Stream](./tokio_stream_file/). Stream files to pace IO, even in a single-threaded runtime.\n15. [Tracing: logging](./tracing_log). Setup trace-based logging.\n16. [Tracing: structures](./tracing_json/). Log to JSON instead.\n17. [Adapting Streams](./stream_adapt/). Adapt a stream in-flight and learn about pinning.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthebracket%2Fardan-1hourasync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthebracket%2Fardan-1hourasync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthebracket%2Fardan-1hourasync/lists"}