2. 기술 스택
"고민하기"
글을 작성하는 시점이 거의 개발을 다시 시작한 지 2주차이니 11월 3주차? 4주차쯤 시작한 것 같다.
목표는 러스트로 Web Node React Native 환경에 라이브러리를 제공하는 것이다.
기존 레포지토리를 찾는 것보다 직접 개발하며 부딪히는 것이 더 효과적일 것이라 판단했다.
참조할 레퍼런스와 가이드라인이 부족해, 원하는 요소만 골라 구현하기로 했다.
홍대 말기의 선택
Node
napi-rs 대안이 없다 Neon도 있지만 이젠 비주류인 것 같고..
napi-rs - 러스트로 Node.js 네이티브 모듈을 만들 수 있게 해주는 프레임워크. 러스트 코드를 Node.js에서 직접 사용할 수 있게 해준다.
Craby
나온 지 얼마 안 됐고 정식 버전도 안 나왔지만 대안이 없다.
아니 Craby를 보고 이런 멀티 플랫폼 라이브러리 개발을 생각했다.
Craby - React Native에서 러스트 코드를 사용할 수 있게 해주는 라이브러리. 모바일 앱에서 러스트의 코드로 개발할 수 있다.
Web
사실 러스트로 한다고 하면 wasm-pack 또는 wasm-bindgen 인데
NAPI-RS에서 WebAssembly 빌드를 지원하고 있는 걸 알았다.
문서를 보면 안정적인 것 같진 않지만,
어차피 이 프로젝트는 실험적인 성격이 강하다.
실험적 프로젝트인데 왜 그런 걸 고려하겠는가?
WebAssembly - 웹 브라우저에서 네이티브에 가까운 성능으로 코드를 실행할 수 있게 해주는 기술. 러스트를 웹에서 사용할 수 있게 해준다.
번들러
Node, pnpm, yarn, npm, deno 저리가라! Bun으로 간다
Bun - 빠른 JavaScript 런타임, 번들러, 패키지 매니저를 하나로 통합한 도구. Node.js 대체제로 주목받고 있다.
포매터
eslint, biome 저리가라! oxlint, oxfmt로 간다
문서
rspress 2 rc로 간다
Rspress - Rust 기반의 빠른 정적 사이트 생성기. Nextra, Docusaurus와 유사하지만 더 빠른 빌드 속도를 제공한다.