[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5729":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},5729,"smol","smol-rs\u002Fsmol","smol-rs","A small and fast async runtime for Rust","",null,"Rust",4962,188,73,19,0,1,7,52,6,69.53,"Apache License 2.0",false,"master",[26,27,28,29,30,31],"async","concurrency","futures","networking","runtime","rust","2026-06-12 04:00:26","# smol\n\n[![Build](https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fsmol\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](\nhttps:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fsmol\u002Factions)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0_OR_MIT-blue.svg)](\nhttps:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fsmol)\n[![Cargo](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fsmol.svg)](\nhttps:\u002F\u002Fcrates.io\u002Fcrates\u002Fsmol)\n[![Documentation](https:\u002F\u002Fdocs.rs\u002Fsmol\u002Fbadge.svg)](\nhttps:\u002F\u002Fdocs.rs\u002Fsmol)\n[![Chat](https:\u002F\u002Fimg.shields.io\u002Fmatrix\u002Fsmol-rs%3Amatrix.org)](\nhttps:\u002F\u002Fmatrix.to\u002F#\u002F#smol-rs:matrix.org)\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fsmol-rs\u002Fsmol\u002Fmaster\u002Fassets\u002Fimages\u002Flogo_fullsize_transparent.png\" alt=\"kitty\" width=\"100px\" style=\"float: left;\" \u002F>\n\nA small and fast async runtime.\n\nThis crate simply re-exports other smaller async crates (see the source).\n\nTo use tokio-based libraries with smol, apply the [`async-compat`] adapter to futures and I\u002FO\ntypes.\n\nSee the [`smol-macros`] crate if you want a no proc-macro, fast compiling, easy-to-use\nasync main and\u002For multi-threaded Executor setup out of the box.\n\n## Examples\n\nConnect to an HTTP website, make a GET request, and pipe the response to the standard output:\n\n```rust,no_run\nuse smol::{io, net, prelude::*, Unblock};\n\nfn main() -> io::Result\u003C()> {\n    smol::block_on(async {\n        let mut stream = net::TcpStream::connect(\"example.com:80\").await?;\n        let req = b\"GET \u002F HTTP\u002F1.1\\r\\nHost: example.com\\r\\nConnection: close\\r\\n\\r\\n\";\n        stream.write_all(req).await?;\n\n        let mut stdout = Unblock::new(std::io::stdout());\n        io::copy(stream, &mut stdout).await?;\n        Ok(())\n    })\n}\n```\n\nThere's a lot more in the [examples] directory.\n\n[`async-compat`]: https:\u002F\u002Fdocs.rs\u002Fasync-compat\u002Flatest\u002Fasync_compat\u002F\n[`smol-macros`]: https:\u002F\u002Fdocs.rs\u002Fsmol-macros\u002Flatest\u002Fsmol_macros\u002F\n[examples]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fsmol\u002Ftree\u002Fmaster\u002Fexamples\n\n## Subcrates\n\n- [async-channel] - Multi-producer multi-consumer channels\n- [async-executor] - Composable async executors\n- [async-fs] - Async filesystem primitives\n- [async-io] - Async adapter for I\u002FO types, also timers\n- [async-lock] - Async locks (barrier, mutex, reader-writer lock, semaphore)\n- [async-net] - Async networking primitives (TCP\u002FUDP\u002FUnix)\n- [async-process] - Async interface for working with processes\n- [async-task] - Task abstraction for building executors\n- [blocking] - A thread pool for blocking I\u002FO\n- [futures-lite] - A lighter fork of [futures]\n- [polling] - Portable interface to epoll, kqueue, event ports, and wepoll\n\n[async-io]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-io\n[polling]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fpolling\n[nb-connect]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fnb-connect\n[async-executor]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-executor\n[async-task]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-task\n[blocking]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fblocking\n[futures-lite]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Ffutures-lite\n[smol]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fsmol\n[async-net]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-net\n[async-process]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-process\n[async-fs]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-fs\n[async-channel]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-channel\n[concurrent-queue]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fconcurrent-queue\n[event-listener]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fevent-listener\n[async-lock]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Fasync-lock\n[fastrand]: https:\u002F\u002Fgithub.com\u002Fsmol-rs\u002Ffastrand\n[futures]: https:\u002F\u002Fgithub.com\u002Frust-lang\u002Ffutures-rs\n\n## TLS certificate\n\nSome code examples are using TLS for authentication. The repository\ncontains a self-signed certificate usable for testing, but it should **not**\nbe used for real-world scenarios. Browsers and tools like curl will\nshow this certificate as insecure.\n\nIn browsers, accept the security prompt or use `curl -k` on the\ncommand line to bypass security warnings.\n\nThe certificate file was generated using\n[minica](https:\u002F\u002Fgithub.com\u002Fjsha\u002Fminica) and\n[openssl](https:\u002F\u002Fwww.openssl.org\u002F):\n\n```text\nminica --domains localhost -ip-addresses 127.0.0.1 -ca-cert certificate.pem\nopenssl pkcs12 -export -out identity.pfx -inkey localhost\u002Fkey.pem -in localhost\u002Fcert.pem\n```\n\nAnother useful tool for making certificates is [mkcert].\n\n[mkcert]: https:\u002F\u002Fgithub.com\u002FFiloSottile\u002Fmkcert\n\n## MSRV Policy\n\nThe Minimum Supported Rust Version (MSRV) of this crate is **1.85**. As a **tentative** policy, the MSRV will not advance past the [current Rust version provided by Debian Stable](https:\u002F\u002Fpackages.debian.org\u002Fstable\u002Frust\u002Frustc). At the time of writing, this version of Rust is *1.85*. However, the MSRV may be advanced further in the event of a major ecosystem shift or a security vulnerability.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\nat your option.\n\n#### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n","smol 是一个轻量级且高效的 Rust 异步运行时。它通过重新导出其他小型异步库来提供核心功能，支持并发、异步 I\u002FO 和网络操作，并兼容 tokio 库。项目集成了多种子模块，如异步通道、执行器、文件系统、网络和进程控制等，为开发者提供了丰富的工具集。适用于需要高性能异步处理的场景，尤其是在资源受限或对启动时间和内存占用有严格要求的应用中。",2,"2026-06-11 03:04:54","top_language"]