Name
SPVM::Resource::UV - libuv Resources
Description
SPVM::Resource::UV class in SPVM is a resource class for libuv library.
Usage
MyClass.config:
my $config = SPVM::Builder::Config->new_c99;
$config->use_resource('Resource::UV');
my $resource_uv = $config->get_resource('Resource::UV');
$config->add_define(@{$resource_uv->config->defines});
$config->add_lib(@{$resource_uv->config->libs});
$config;
MyClass.c:
#include <uv.h>
uv_loop_t* loop = uv_default_loop();
uv_run(loop, UV_RUN_DEFAULT);
uv_loop_close(loop);
Original Product
Original Product Version
Language
The C language
Language Standard
C99
Header Files
uv.huv/errno.huv/fos.huv/threadpool.huv/version.huv/unix.huv/win.h
Source Files
Common:
fs-poll.cidna.cinet.crandom.cstrscpy.cstrtok.cthread-common.cthreadpool.ctimer.cuv-common.cuv-data-getter-setters.cversion.c
Unix:
unix/async.cunix/core.cunix/dl.cunix/fs.cunix/getaddrinfo.cunix/getnameinfo.cunix/loop-watcher.cunix/loop.cunix/pipe.cunix/poll.cunix/process.cunix/random-devurandom.cunix/signal.cunix/stream.cunix/tcp.cunix/thread.cunix/tty.cunix/udp.c
Linux:
unix/linux.cunix/procfs-exepath.cunix/random-getrandom.cunix/random-sysctl-linux.cunix/proctitle.c
macOS (Darwin):
unix/proctitle.cunix/darwin.cunix/darwin-proctitle.cunix/fsevents.cunix/bsd-ifaddrs.cunix/kqueue.cunix/random-getentropy.c
Windows:
win/async.cwin/core.cwin/detect-wakeup.cwin/dl.cwin/error.cwin/fs.cwin/fs-event.cwin/getaddrinfo.cwin/getnameinfo.cwin/handle.cwin/loop-watcher.cwin/pipe.cwin/thread.cwin/poll.cwin/process.cwin/process-stdio.cwin/signal.cwin/snprintf.cwin/stream.cwin/tcp.cwin/tty.cwin/udp.cwin/util.cwin/winapi.cwin/winsock.c
Compiler Flags & Defines
Unix (Common):
-D_FILE_OFFSET_BITS=64-D_LARGEFILE_SOURCE
Linux:
-D_GNU_SOURCE-D_POSIX_C_SOURCE=200112
macOS (Darwin):
-D_DARWIN_UNLIMITED_SELECT=1-D_DARWIN_USE_64_BIT_INODE=1
Windows:
-DWIN32_LEAN_AND_MEAN-D_WIN32_WINNT=0x0A00-D_CRT_DECLARE_NONSTDC_NAMES=0
Libraries
Linux:
dlrt
Windows:
psapiuser32advapi32iphlpapiuserenvws2_32dbghelpole32shell32
How to Create Resource
Download
mkdir -p .tmp
git clone https://github.com/libuv/libuv .tmp/libuv
git -C .tmp/libuv checkout tags/v1.52.1 -b branch_v1.52.1
git -C .tmp/libuv branch
Extracting Header Files
The header files of libuv is copied into the include directory by the following command.
rsync -av --include='*.h' --exclude='*' .tmp/libuv/include/ lib/SPVM/Resource/UV.native/include/
Extracting Source Files
The source files of libuv are copied into the src directory by the following command.
rsync -av --exclude='*.h' .tmp/libuv/src/ lib/SPVM/Resource/UV.native/src/
Repository
Author
Yuki Kimoto kimoto.yuki@gmail.com
Copyright & License
Copyright (c) 2026 Yuki Kimoto
MIT License