[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6024":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":15,"starSnapshotCount":15,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},6024,"libuv","libuv\u002Flibuv","Cross-platform asynchronous I\u002FO","https:\u002F\u002Flibuv.org\u002F",null,"C",26904,3884,706,131,0,18,83,5,45,"MIT License",false,"v1.x",[24,25,26,27,28,29,30,31],"asynchronous","deep-io","io","networking","unicorns","unix","velociraptors","windows","2026-06-12 02:01:15","![libuv][libuv_banner]\n\n## Overview\n\nlibuv is a multi-platform support library with a focus on asynchronous I\u002FO. It\nwas primarily developed for use by [Node.js][], but it's also\nused by [Luvit](http:\u002F\u002Fluvit.io\u002F), [Julia](http:\u002F\u002Fjulialang.org\u002F),\n[uvloop](https:\u002F\u002Fgithub.com\u002FMagicStack\u002Fuvloop), and [others](https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv\u002Fblob\u002Fv1.x\u002FLINKS.md).\n\n## Feature highlights\n\n * Full-featured event loop backed by epoll, kqueue, IOCP, event ports.\n\n * Asynchronous TCP and UDP sockets\n\n * Asynchronous DNS resolution\n\n * Asynchronous file and file system operations\n\n * File system events\n\n * ANSI escape code controlled TTY\n\n * IPC with socket sharing, using Unix domain sockets or named pipes (Windows)\n\n * Child processes\n\n * Thread pool\n\n * Signal handling\n\n * High resolution clock\n\n * Threading and synchronization primitives\n\n## Versioning\n\nStarting with version 1.0.0 libuv follows the [semantic versioning](http:\u002F\u002Fsemver.org\u002F)\nscheme. The API change and backwards compatibility rules are those indicated by\nSemVer. libuv will keep a stable ABI across major releases.\n\nThe ABI\u002FAPI changes can be tracked [here](http:\u002F\u002Fabi-laboratory.pro\u002Ftracker\u002Ftimeline\u002Flibuv\u002F).\n\n## Licensing\n\nlibuv is licensed under the MIT license. Check the [LICENSE](LICENSE) and\n[LICENSE-extra](LICENSE-extra) files.\n\nThe documentation is licensed under the CC BY 4.0 license. Check the\n[LICENSE-docs file](LICENSE-docs).\n\n## Community\n\n * [Support](https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv\u002Fdiscussions)\n * [Mailing list](http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Flibuv)\n\n## Documentation\n\n### Official documentation\n\nLocated in the docs\u002F subdirectory. It uses the [Sphinx](http:\u002F\u002Fsphinx-doc.org\u002F)\nframework, which makes it possible to build the documentation in multiple\nformats.\n\nShow different supported building options:\n\n```bash\n$ make help\n```\n\nBuild documentation as HTML:\n\n```bash\n$ make html\n```\n\nBuild documentation as HTML and live reload it when it changes (this requires\nsphinx-autobuild to be installed and is only supported on Unix):\n\n```bash\n$ make livehtml\n```\n\nBuild documentation as man pages:\n\n```bash\n$ make man\n```\n\nBuild documentation as ePub:\n\n```bash\n$ make epub\n```\n\nNOTE: Windows users need to use make.bat instead of plain 'make'.\n\nDocumentation can be browsed online [here](http:\u002F\u002Fdocs.libuv.org).\n\nThe [tests and benchmarks](https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv\u002Ftree\u002Fmaster\u002Ftest)\nalso serve as API specification and usage examples.\n\n### Other resources\n\n * [LXJS 2012 talk](http:\u002F\u002Fwww.youtube.com\u002Fwatch?v=nGn60vDSxQ4)\n   &mdash; High-level introductory talk about libuv.\n * [libuv-dox](https:\u002F\u002Fgithub.com\u002Fthlorenz\u002Flibuv-dox)\n   &mdash; Documenting types and methods of libuv, mostly by reading uv.h.\n * [learnuv](https:\u002F\u002Fgithub.com\u002Fthlorenz\u002Flearnuv)\n   &mdash; Learn uv for fun and profit, a self guided workshop to libuv.\n\nThese resources are not handled by libuv maintainers and might be out of\ndate. Please verify it before opening new issues.\n\n## Downloading\n\nlibuv can be downloaded either from the\n[GitHub repository](https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv)\nor from the [downloads site](http:\u002F\u002Fdist.libuv.org\u002Fdist\u002F).\n\nBefore verifying the git tags or signature files, importing the relevant keys\nis necessary. Key IDs are listed in the\n[MAINTAINERS](https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv\u002Fblob\u002Fmaster\u002FMAINTAINERS.md)\nfile, but are also available as git blob objects for easier use.\n\nImporting a key the usual way:\n\n```bash\n$ gpg --keyserver pool.sks-keyservers.net --recv-keys AE9BC059\n```\n\nImporting a key from a git blob object:\n\n```bash\n$ git show pubkey-saghul | gpg --import\n```\n\n### Verifying releases\n\nGit tags are signed with the developer's key, they can be verified as follows:\n\n```bash\n$ git verify-tag v1.6.1\n```\n\nStarting with libuv 1.7.0, the tarballs stored in the\n[downloads site](http:\u002F\u002Fdist.libuv.org\u002Fdist\u002F) are signed and an accompanying\nsignature file sit alongside each. Once both the release tarball and the\nsignature file are downloaded, the file can be verified as follows:\n\n```bash\n$ gpg --verify libuv-1.7.0.tar.gz.sign\n```\n\n## Build Instructions\n\nFor UNIX-like platforms, including macOS, there are two build methods:\nautotools or [CMake][].\n\nFor Windows, [CMake][] is the only supported build method and has the\nfollowing prerequisites:\n\n\u003Cdetails>\n\n* One of:\n  * [Visual C++ Build Tools][]\n  * [Visual Studio 2015 Update 3][], all editions\n    including the Community edition (remember to select\n    \"Common Tools for Visual C++ 2015\" feature during installation).\n  * [Visual Studio 2017][], any edition (including the Build Tools SKU).\n    **Required Components:** \"MSbuild\", \"VC++ 2017 v141 toolset\" and one of the\n    Windows SDKs (10 or 8.1).\n* Basic Unix tools required for some tests,\n  [Git for Windows][] includes Git Bash\n  and tools which can be included in the global `PATH`.\n\n\u003C\u002Fdetails>\n\nTo build with autotools:\n\n```bash\n$ sh autogen.sh\n$ .\u002Fconfigure\n$ make\n$ make check\n$ make install\n```\n\nTo build with [CMake][]:\n\n```bash\n$ cmake -B build -DBUILD_TESTING=ON         # generate project with tests\n$ cmake --build build                       # add `-j \u003Cn>` with cmake >= 3.12\n\n# Run tests:\n$ (cd build && ctest -C Debug --output-on-failure)\n\n# Or manually run tests:\n$ build\u002Fuv_run_tests                        # shared library build\n$ build\u002Fuv_run_tests_a                      # static library build\n```\n\nTo cross-compile with [CMake][] (unsupported but generally works):\n\n```bash\n$ cmake ..\u002F..                 \\\n  -DCMAKE_SYSTEM_NAME=Windows \\\n  -DCMAKE_SYSTEM_VERSION=6.1  \\\n  -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc\n```\n\n### Install with Homebrew\n\n```bash\n$ brew install --HEAD libuv\n```\n\nNote to macOS users:\n\nMake sure that you specify the architecture you wish to build for in the\n\"ARCHS\" flag. You can specify more than one by delimiting with a space\n(e.g. \"x86_64 i386\").\n\n### Install with vcpkg\n\n```bash\n$ git clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvcpkg.git\n$ .\u002Fbootstrap-vcpkg.bat # for powershell\n$ .\u002Fbootstrap-vcpkg.sh # for bash\n$ .\u002Fvcpkg install libuv\n```\n\n### Install with Conan\n\nYou can install pre-built binaries for libuv or build it from source using [Conan](https:\u002F\u002Fconan.io\u002F). Use the following command:\n\n```bash\nconan install --requires=\"libuv\u002F[*]\" --build=missing\n```\n\nThe libuv Conan recipe is kept up to date by Conan maintainers and community contributors.\nIf the version is out of date, please [create an issue or pull request](https:\u002F\u002Fgithub.com\u002Fconan-io\u002Fconan-center-index) on the ConanCenterIndex repository.\n\n\n### Running tests\n\nSome tests are timing sensitive. Relaxing test timeouts may be necessary\non slow or overloaded machines:\n\n```bash\n$ env UV_TEST_TIMEOUT_MULTIPLIER=2 build\u002Fuv_run_tests # 10s instead of 5s\n```\n\n#### Run one test\n\nThe list of all tests is in `test\u002Ftest-list.h`.\n\nThis invocation will cause the test driver to fork and execute `TEST_NAME` in\na child process:\n\n```bash\n$ build\u002Fuv_run_tests_a TEST_NAME\n```\n\nThis invocation will cause the test driver to execute the test in\nthe same process:\n\n```bash\n$ build\u002Fuv_run_tests_a TEST_NAME TEST_NAME\n```\n\n#### Debugging tools\n\nWhen running the test from within the test driver process\n(`build\u002Fuv_run_tests_a TEST_NAME TEST_NAME`), tools like gdb and valgrind\nwork normally.\n\nWhen running the test from a child of the test driver process\n(`build\u002Fuv_run_tests_a TEST_NAME`), use these tools in a fork-aware manner.\n\n##### Fork-aware gdb\n\nUse the [follow-fork-mode](https:\u002F\u002Fsourceware.org\u002Fgdb\u002Fonlinedocs\u002Fgdb\u002FForks.html) setting:\n\n```\n$ gdb --args build\u002Fuv_run_tests_a TEST_NAME\n\n(gdb) set follow-fork-mode child\n...\n```\n\n##### Fork-aware valgrind\n\nUse the `--trace-children=yes` parameter:\n\n```bash\n$ valgrind --trace-children=yes -v --tool=memcheck --leak-check=full --track-origins=yes --leak-resolution=high --show-reachable=yes --log-file=memcheck-%p.log build\u002Fuv_run_tests_a TEST_NAME\n```\n\n### Running benchmarks\n\nSee the section on running tests.\nThe benchmark driver is `.\u002Fuv_run_benchmarks_a` and the benchmarks are\nlisted in `test\u002Fbenchmark-list.h`.\n\n## Supported Platforms\n\nCheck the [SUPPORTED_PLATFORMS file](SUPPORTED_PLATFORMS.md).\n\n### `-fno-strict-aliasing`\n\nIt is recommended to turn on the `-fno-strict-aliasing` compiler flag in\nprojects that use libuv. The use of ad hoc \"inheritance\" in the libuv API\nmay not be safe in the presence of compiler optimizations that depend on\nstrict aliasing.\n\nMSVC does not have an equivalent flag but it also does not appear to need it\nat the time of writing (December 2019.)\n\n### AIX Notes\n\nAIX compilation using IBM XL C\u002FC++ requires version 12.1 or greater.\n\nAIX support for filesystem events requires the non-default IBM `bos.ahafs`\npackage to be installed.  This package provides the AIX Event Infrastructure\nthat is detected by `autoconf`.\n[IBM documentation](http:\u002F\u002Fwww.ibm.com\u002Fdeveloperworks\u002Faix\u002Flibrary\u002Fau-aix_event_infrastructure\u002F)\ndescribes the package in more detail.\n\n### z\u002FOS Notes\n\nz\u002FOS compilation requires [ZOSLIB](https:\u002F\u002Fgithub.com\u002Fibmruntimes\u002Fzoslib) to be installed. When building with [CMake][], use the flag `-DZOSLIB_DIR` to specify the path to [ZOSLIB](https:\u002F\u002Fgithub.com\u002Fibmruntimes\u002Fzoslib):\n\n```bash\n$ (cd build && cmake .. -DBUILD_TESTING=ON -DZOSLIB_DIR=\u002Fpath\u002Fto\u002Fzoslib)\n$ cmake --build build\n```\n\nz\u002FOS creates System V semaphores and message queues. These persist on the system\nafter the process terminates unless the event loop is closed.\n\nUse the `ipcrm` command to manually clear up System V resources.\n\n## Patches\n\nSee the [guidelines for contributing][].\n\n[CMake]: https:\u002F\u002Fcmake.org\u002F\n[node.js]: http:\u002F\u002Fnodejs.org\u002F\n[guidelines for contributing]: https:\u002F\u002Fgithub.com\u002Flibuv\u002Flibuv\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md\n[libuv_banner]: https:\u002F\u002Fraw.githubusercontent.com\u002Flibuv\u002Flibuv\u002Fmaster\u002Fimg\u002Fbanner.png\n[Visual C++ Build Tools]: https:\u002F\u002Fvisualstudio.microsoft.com\u002Fvisual-cpp-build-tools\u002F\n[Visual Studio 2015 Update 3]: https:\u002F\u002Fwww.visualstudio.com\u002Fvs\u002Folder-downloads\u002F\n[Visual Studio 2017]: https:\u002F\u002Fwww.visualstudio.com\u002Fdownloads\u002F\n[Git for Windows]: http:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin\n","libuv是一个专注于异步I\u002FO的跨平台支持库。其核心功能包括基于epoll、kqueue、IOCP等技术的全功能事件循环，支持异步TCP和UDP套接字、DNS解析、文件系统操作及事件监控等功能，并提供线程池、信号处理以及高精度时钟等特性。最初为Node.js开发，但也被Luvit、Julia等多个项目采用。适用于需要高性能异步I\u002FO处理的应用场景，如网络服务器、实时应用及任何需要跨平台异步编程能力的软件开发中。",2,"2026-06-11 03:05:19","top_language"]