Bridgerust: 하나의 Rust 코어, 모든 에코시스템

발행: (2026년 1월 8일 오후 11:10 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

소개

Python, Node.js 및 기타 생태계용 고성능 인프라 라이브러리를 공유 Rust 코어로 작성하세요.
BridgeRust를 사용하면 라이브러리를 Rust 한 번만 작성하고 여러 언어에 대한 네이티브 고성능 바인딩을 자동으로 생성할 수 있습니다.

BridgeRust 작동 방식

BridgeRust는 다음을 제공하는 통합 프레임워크입니다:

  • 프로젝트 스캐폴드 – 몇 초 만에 다중 언어 프로젝트를 설정합니다.
  • 통합 매크로 시스템 – 모든 대상 언어에서 동작하는 단일 #[export] 매크로.
  • 타입 변환Vec, Option, Result 등 자동 매핑.
  • 빌드 및 배포 – 휠과 npm 패키지를 빌드하는 통합 CLI.

시작하기

프로젝트 초기화

bridge init my-awesome-lib
cd my-awesome-lib

내보내는 함수 작성

// src/lib.rs
use bridgerust::export;

#[export]
pub fn greet(name: String) -> String {
    format!("Hello, {}! This is logic from Rust.", name)
}

#[export]
pub struct Point {
    pub x: f64,
    pub y: f64,
}

#[export]
pub fn fast_math(points: Vec) -> f64 {
    // Heavy computation here...
    points.iter().map(|p| p.x + p.y).sum()
}

패키지 빌드

bridge build --all

이 명령은 다음을 생성합니다:

  • Python 휠 (pip install …)
  • Node.js 네이티브 애드온 (npm install …)

사용 예시

Python

import my_awesome_lib

print(my_awesome_lib.greet("Pythoneer"))

p1 = my_awesome_lib.Point(1.0, 2.0)
result = my_awesome_lib.fast_math([p1])

Node.js

const lib = require("my-awesome-lib");

console.log(lib.greet("JavaScripter"));

const p1 = new lib.Point(1.0, 2.0);
const result = lib.fastMath([p1]); // fast_math → fastMath automatically

실제 사례: Embex

우리는 BridgeRust를 사용해 Embex라는 범용 벡터‑데이터베이스 클라이언트를 구축했습니다. Pinecone, Qdrant, LanceDB 등 다양한 백엔드를 지원하면서 핵심 로직(연결 풀링, 재시도 전략, SIMD 연산)은 단일 Rust 코드베이스로 유지합니다.

  • Python 패키지: pip install embex
  • Node.js 패키지: npm install @bridgerust/embex

주요 장점

  • 보일러플레이트 제로 – 수동 PyModule 또는 napi_register_module 정의가 필요 없습니다.
  • 성능 – 제로‑코스트 추상화 덕분에 코드가 네이티브 Rust 속도로 실행됩니다.
  • 개발자 경험 – CLI가 초기화부터 배포까지 전체 라이프사이클을 간소화합니다.
  • 일관성 – Python과 JavaScript 사용자는 동일한 기능과 버그 수정 사항을 동시에 받습니다.

CLI 및 리소스 얻기

  • CLI 설치:

    cargo install bridge
  • 저장소:

  • 문서:


접착 코드를 작성하는 것을 멈추고, 다리를 만들기 시작하세요. 🦀🌉

Back to Blog

관련 글

더 보기 »

Copilot SDK 기술 미리보기

Copilot SDK가 현재 기술 프리뷰 단계에서 제공되며, GitHub Copilot CLI에 대한 프로그래밍 접근을 위한 언어별 SDK를 제공합니다. 사용 가능한 SDK…