System Requirements and Release Notes
P4 API for Ruby is supported on Windows, Linux, and macOS.
For system requirements, see the P4 API for Ruby Release notes.
Platform Compatibility
P4 API for Ruby is certified and regression-tested on the following platforms
Windows (x64)
-
Windows Server: 2016, 2019, 2022
-
Windows Desktop: 10, 11
macOS
-
Intel: macOS 11, 12
-
Apple Silicon (ARM64): macOS 12, 13
Linux (x86_64)
-
Ubuntu: 20.04, 22.04, 24.04
-
CentOS 8
-
Rocky Linux 9
-
RHEL 10
Linux (ARM64)
-
Ubuntu: 20.04, 22.04, 24.04
-
CentOS 8
-
Rocky Linux 9
-
RHEL 10
Platforms not listed above are not actively tested by Perforce. P4 API for Ruby may still run on other platforms, but issues on unlisted platforms are not prioritized for fixes.
Ruby Compatibility
The following versions of P4 API for Ruby can be built from source using the following Ruby versions:
|
Ruby Version |
Minimum P4 API for Ruby Release |
|---|---|
|
3.2 |
2023.1 or later |
|
3.3 |
2024.1 or later |
|
3.4 |
2024.2.1 or later |
Server Compatibility
P4 API for Ruby is officially supported with the 2025.1 P4 Server. Older server versions may work, but are not officially supported.
P4 API for C/C++ Compatibility
P4 API for Ruby requires P4 API for C/C++ version 2025.1 or later. Older API versions will not compile and are not supported.
OpenSSL Compatibility
To enable encrypted communication, P4 API for Ruby must be built using the same OpenSSL version as the P4 API for C/C++.
Since P4 API for C/C++ 2017.1, OpenSSL is a mandatory dependency (SSL stub library removed).
Preferred OpenSSL versions:
-
OpenSSL 3.x.x
-
OpenSSL 1.1.1
Compiler Compatibility
P4 API for Ruby must be built with the same compiler used to build the P4 API for C/C++. The preferred compilers are gcc or g++.
Known Limitations
The P4 client-server protocol does not support concurrent queries over the same connection.
Multi-threaded applications using P4 API for Ruby (or other script APIs like P4 API for Perl) must either:
-
Use separate connections per thread.
-
Ensure only one thread accesses a shared connection at a time.