Getting Started
Getting Started with RF Swift π
This guide will help you get started with RF Swift by covering system requirements, installation steps, and next actions.
Supported Platforms
RF Swift is designed to work across multiple platforms and architectures to suit your specific environment.
Operating Systems
Platform | x86_64/amd64 | arm64/v8 | riscv64 |
---|---|---|---|
Windows | β Fully supported | β Limited testing | β Not supported |
Linux | β Fully supported | β Fully supported | β Fully supported |
macOS | β Limited support | β Supported (better inside a VM for USB devices) | β Not supported |
Tested Single-Board Computers
SBC | Status | Comments |
---|---|---|
Raspberry Pi 5 | β | Works perfectly with most tools |
Milk-V Jupiter | β | Works perfectly with most tools, but slower than Raspberry Pi 5 |
Orange Pi RV2 | β | Works perfectly with most tools, but slower than Milk-V Jupiter |
Milk-V Mars | β | Software support is currently unavailable. Docker installation is problematic |
UP Squared Series | β | Works perfectly with most tools |
Installation
RF Swift now offers a streamlined one-line installer that automatically installs all dependencies (including Docker) and configures your system for optimal performance.
One-Line Installer
Our new installer takes care of everything for you in a single command! It will:
- Install Docker if it’s not already present
- Download and install the latest RF Swift release
- Configure your system for USB, audio, and GUI support
- Create a convenient shell alias for easy access
- Set up proper permissions and configurations
Linux and macOS
curl -fsSL "https://get.rfswift.io/" | sh
Or if you prefer wget:
wget -qO- "https://get.rfswift.io/" | sh
After installation completes, simply open a new terminal and run:
rfswift
install.sh
script provided with each release. Always download the script from the official repository to ensure authenticity.
Windows
Follow the manual installation steps.
Manual Installation
If you prefer to have more control over the installation process, you can install the components separately.
Linux Manual Installation (Preferred)
install.sh
script included in the repository.
Essential Components
- Docker: Required to run RF Swift containers
curl -fsSL "https://get.docker.com/" | sh
- xhost: Required for GUI application support (install via your distribution’s package manager)
- PulseAudio: Required for audio support (install via your distribution’s package manager)
Optional Components
- Go Compiler: Required if you want to build RF Swift from source
- BuildX: Required for cross-architecture compilation
Repository Installation
# Clone the repository
git clone https://github.com/PentHertz/RF-Swift.git
cd RF-Swift
# Run the installation script to automatically install all dependencies
./install.sh
The install.sh
script will:
- Install Docker if not already present
- Set up BuildX for cross-architecture support
- Install Go compiler if needed
- Configure xhost for GUI application access
- Set up PulseAudio for sound
- Configure user permissions for Docker
- Download and install the latest RF Swift binary
Windows Manual Installation
Required Software
- Docker Desktop to run containers
- usbipd to bind USB devices to the host
For Audio Support
For programs requiring PulseAudio:
- Follow the setup guide on Linux Uprising
- Use the updated binaries available at pgaskin.net/pulseaudio-win32
Installation Steps
- Install Docker Desktop and ensure WSL2 integration is enabled
- Install usbipd for USB device support
- Set up PulseAudio if audio functionality is needed
- Download the latest RF Swift binary from the releases page
macOS Manual Installation
Current Status
- Container functionality works without USB forwarding
- For full functionality including USB device support, running in a Linux VM is recommended
Required Software
- Docker Desktop for macOS
- XQuartz for X11 forwarding (optional)
Known Limitations
- USB device forwarding is not currently supported natively
- Some specialized RF tools may have compatibility issues
System Requirements
The minimum requirements to run RF Swift are:
- CPU: Any dual-core CPU (quad-core recommended for better performance)
- RAM: 4GB minimum (8GB or more recommended)
- Storage: 10GB free space (20GB+ recommended for multiple container images)
- Docker: Automatically installed by the one-line installer
- Internet Connection: Required for initial setup and image downloads
Architecture Overview
RF Swift organizes its functionality in a hierarchical structure:
graph TD A[rfswift] --> B[Host manager] B --> C[Host] B --> D[USB] B --> F[Sound] B --> G[Images Container manager] H[Dockerfiles] --> G G --> I[Pull] G --> J[List] G --> K[Save] G --> L[Tag] G --> M[Run] G --> N[Exec] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style H fill:#afa,stroke:#333,stroke-width:2px style G fill:#bbf,stroke:#333,stroke-width:2px
This structure allows RF Swift to provide:
- Comprehensive container management
- Host resource integration
- Device forwarding (USB, audio, display)
- Streamlined workflow for RF testing and development
Next Steps
After installation, you can dive right into:
Troubleshooting
If you encounter issues during installation or usage:
- Check the GitHub Issues page for known problems
- Verify your Docker installation is working correctly with
docker run hello-world
- Ensure you have the required permissions (e.g., user is in the docker group on Linux)
- Join our Discord community for direct assistance
Common Issues with the One-Line Installer
If you encounter issues with the one-line installer:
- Permission Denied: Ensure you have sudo privileges for Linux/macOS installation
- Docker Service Not Starting: Try restarting your system after installation
- Shell Alias Not Working: Open a new terminal window or manually source your shell configuration file
- GitHub API Rate Limiting: If you see an error about GitHub API limits, wait a few minutes and try again
Feature Compatibility Matrix
Feature | Linux | Windows | macOS |
---|---|---|---|
Container Execution | β | β | β |
GUI Applications | β | β | β (with XQuartz) |
USB Device Forwarding | β | β (with usbipd) | β |
Audio Support | β | β (with PulseAudio) | β Limited |
Hardware Acceleration | β | β Limited | β Limited |
Cross-Compilation | β | β (in WSL) | β |
One-Line Installer | β | β | β |