
312
이펙티브 러스트
아이템
33
:
no
_
std
에 호환되는 라이브러리 코드를 고려하라
러스트는 표준 데이터 구조부터 네트워킹, 멀티 스레딩 지원, 파일
I
/
O
에 이르기까지 자주 사
용하는 기능을 담은 표준 라이브러리 (
std
)를 기본으로 제공한다. 러스트에서는
std
항목 중
상당 부분을 자동으로 임포트
import
할 수 있는
프렐류드
prelude
기능을 제공한다. 프렐류드를 이용
하면 자주 사용하는 타입을 간략한 이름으로 사용할 수 있다. 예를 들어
std
::
vec
::
Vec
대신
Vec
을 사용해도 된다.
러스트는 부트 로더
boot
loader
나 펌웨어, 임베디드 플랫폼처럼 표준 라이브러리를 완전히 제공할
수 없는 환경에서 실행될 코드에 대한 빌드도 지원한다.
src
/
lib
.
rs
상단에 크레이트 수준 속
성인
#![
no
_
std
]
를 지정하면 된다.
이번 아이템에서는
no
_
std
용으로 빌드할 때 사용할 수 없는 기능과 여전히 사용할 수 있는
(생각보다 꽤 많은) 기능을 살펴본다.
하지만 여기서는 라이브러리 코드에 대한
no
_
std
지원 위주로 설명한다.
no
_
std
바이너리 제
작에 관련된 다양한 이슈에 대해서는 이 책에서 다루지 않고,
2
열악한 환경에서 작업할 수밖에
없는 안타까운 영혼들에게 라이브러리 코드만큼은 확실히 사용할 수 있게 만드는 데 집중한다.
core ...