Rizin
unix-like reverse engineering framework and cli tools
|
System | Support type | Supported versions | Notes |
---|---|---|---|
GNU/Linux | Tier 1 | Linux >= 2.6.32 with glibc >= 2.12 | |
macOS | Tier 1 | macOS >= 10.7 | |
Windows | Tier 1 | >= Windows 7 | MSVC 2008 and later are supported |
FreeBSD | Tier 1 | >= 10 | |
AIX | Tier 2 | >= 6 | Maintainers: @libuv/aix |
z/OS | Tier 2 | >= V2R2 | Maintainers: @libuv/zos |
Linux with musl | Tier 2 | musl >= 1.0 | |
SmartOS | Tier 2 | >= 14.4 | Maintainers: @libuv/smartos |
Android | Tier 3 | NDK >= r15b | |
IBM i | Tier 3 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
MinGW | Tier 3 | MinGW32 and MinGW-w64 | |
SunOS | Tier 3 | Solaris 121 and later | |
Other | Tier 3 | N/A |
IMPORTANT: Before attempting to add support for a new platform please open an issue about it for discussion.
I/O handling is abstracted by an internal uv__io_t
handle. The new platform will need to implement some of the functions, the prototypes are in src/unix/internal.h
.
If the new platform requires extra fields for any handle structure, create a new include file in include/
with the name uv-theplatform.h
and add the appropriate defines there.
All functionality related to the new platform must be implemented in its own file inside src/unix/
unless it's already done in a common file, in which case adding an ifdef
is fine.
Two build systems are supported: autotools and cmake. Ideally both need to be supported, but if one of the two does not support the new platform it can be left out.
Windows is treated as a single platform, so adding support for a new platform would mean adding support for a new version.
Compilation and runtime must succeed for the minimum supported version. If a new API is to be used, it must be done optionally, only in supported versions.
Some common notes when adding support for new platforms: