Ruby 바인딩은 다양한 시스템과의 연결을 가능하게 하며, 주요 바인딩은 다음과 같이 분류할 수 있습니다.
1. 데이터베이스 바인딩
-
PostgreSQL (
pg): Ruby에서 가장 널리 사용되는 프로덕션 데이터베이스 바인딩입니다. -
MySQL (
mysql2): MySQL 데이터베이스와의 효율적인 연결을 제공합니다. -
Redis (
redis-rb): 캐싱, 세션 관리, Sidekiq, ActionCable 등 광범위하게 활용됩니다.
2. 네이티브 확장 (C 바인딩)
-
Nokogiri (libxml2): 빠르고 강력한 HTML/XML 파싱 기능을 제공합니다.
-
Oj (fast JSON parser): 표준
json라이브러리의 드롭인 대체재로, 훨씬 빠른 JSON 파싱 및 생성 성능을 자랑합니다. -
ruby-vips (libvips): 초고속 이미지 처리를 위한 라이브러리입니다.
-
Typhoeus (libcurl): 높은 동시성을 지원하는 HTTP 요청을 가능하게 합니다.
3. 프로토콜 바인딩 (웹, 실시간 & IoT)
-
ActionCable (WebSockets in Rails): Rails 애플리케이션 내에서 웹소켓을 통한 실시간 통신을 구현합니다.
-
gRPC for Ruby: 고성능, 오픈소스 RPC(원격 프로시저 호출) 프레임워크입니다.
-
MQTT (
ruby-mqtt): IoT 및 ESP32와 같은 임베디드 장치와의 통신에 이상적입니다.
4. 언어 / 런타임 상호 운용
-
mini_racer (V8 engine inside Ruby): Ruby 애플리케이션 내에서 V8 JavaScript 엔진을 실행할 수 있게 합니다.
-
JRuby (Ruby on JVM): JVM 위에서 Ruby를 실행하여 Java 라이브러리와의 통합을 가능하게 합니다.
-
Rutie (Ruby + Rust): Ruby와 Rust 간의 상호 운용성을 제공하여 성능이 중요한 작업을 Rust로 처리할 수 있습니다.
5. 하드웨어 & 임베디드 바인딩
-
ruby-serialport: 시리얼 포트를 통해 하드웨어 장치와 통신합니다.
-
rpi_gpio (Raspberry Pi GPIO): 라즈베리 파이의 GPIO 핀을 Ruby에서 제어할 수 있게 합니다.