중요한 것은 사람들입니다
Rust의 Externally Implementable Items(EIIs)는 크레이트 간에 함수나 정적 변수를 외부에서 구현할 수 있도록 하는 기능을 제안합니다.
기존 Rust는 모듈 내 함수 호출 순서에 구애받지 않지만, 크레이트 그래프는 방향성 비순환 그래프(DAG)여서 C언어처럼 전방 선언(forward declaration) 개념이 필요했습니다.
EIIs는 기존에 패닉 핸들러와 글로벌 할당자에만 적용되던 외부 구현 방식을 일반화하여, 함수 시그니처만 선언하고 실제 구현은 다른 크레이트에서 제공할 수 있게 합니다.
이 기능은 컴파일러 내부에서 이름 해석과 링커 동작을 개선하기 위해 어트리뷰트와 외부 함수 선언을 결합하며, 기본 구현(defaults)도 지원하여 사용자 정의가 없을 경우 기본 동작을 유지할 수 있습니다.
현재는 리눅스와 macOS에서 실험적 기능으로 제공되며, 동적 링크 및 컴파일러 자체의 모듈화에도 대응할 수 있도록 설계되어 Rust 컴파일러 및 표준 라이브러리의 확장성과 유지보수성을 크게 향상시킬 전망입니다.