2021.01.11

러스트용 비동기 런타임 ‘토키오’, 버전 1.0 공개

Paul Krill | InfoWorld
러스트(Rust)용 비동기 런타임 ‘토키오(Tokio) 1.0’이 출시됐다. 속도 저하 없는 안정적인 네트워크 애플리케이션 개발을 지원하는 이 런타임은 TCP/UDP, 타이머(Timer), 멀티-스레드(Multi-threaded), 작업 도용 스케줄러(Work-stealing Scheduler) 등을 위한 비동기 API를 함께 제공한다. 
 
ⓒGetty Images

지난 12월 22일 발표된 ‘토키오 1.0’은 현재 깃허브(GitHub)에서 다운로드 받을 수 있다. 토키오 개발팀은 “4년 전에 처음으로 토키오를 소개했다. 그 이후 토키오는 더 사용하기 쉬워졌고 더 강력해졌다”라고 말했다.

이어서 개발팀은 “그러나 진화해 나가는 과정에서 약간의 문제가 발생했다. 이를테면 많은 변경사항을 추적하기 위해 라이브러리를 필요로 했으며, 실수로 여러 버전의 토키오를 사용하는 경우 혼동되는 에러 메시지가 나타나는 등이었다. 토키오 1.0은 이러한 문제들을 해결한다”라고 덧붙였다. 

개발팀은 향후 3년 내에는 토키오 2.0을 출시할 계획이 없으며, 토키오 1.0 브랜치는 최소 5년 동안 유지할 예정이라고 밝혔다. 또 MSRV(Minimum Supported Rust Version) 정책은 6개월 동안 유지한다고 전했다. 하지만 그렇다고 해서 토키오가 정체되진 않을 것이라고 개발팀은 강조했다. 2021년 토키오 프로젝트가 초점을 맞출 영역들은 다음과 같다. 

• ‘Stream’: 현재 tokio-stream 상자는 스트림 특성(Stream trait)를 기반으로 비동기식 반복 유틸리티를 제공한다. 개발팀에 따르면 스트림 특성을 futures-core에서 러스트 표준 라이브러리로 이동하기 위한 RFC(Request for Comments)가 승인을 기다리고 있다. 러스트 표준 라이브러리가 스트림 특성을 제공하게 되면 스트림 유틸리티를 토키오 자체 상자로 이동할 수 있다. 

• ‘io_uring’: 이는 시스템 호출 수를 줄이면서 디스크를 포함한 모든 타입의 I/O에 비동기 작업을 제공하는 새로운 리눅스 인터페이스다. ‘io_uring’를 활용하면 토키오는 진정한 비동기 파일 시스템 작업을 제공할 수 있다고 개발팀은 설명했다.

• ‘tracing': 개발팀은 트레이싱과 나머지 토키오 스택 간의 긴밀한 통합을 구축해 토키오 내부의 가시성을 제공할 계획이라고 전했다. 또한 트레이싱 생태계를 지속적으로 개선하고 성장시키겠다고 덧붙였다. 

• 토키오 스택(Tokio stack): 신뢰할 수 있는 클라이언트 및 서버를 구축하는 재사용 가능한 컴포넌트 집합 타워(Tower)에 초점을 맞출 계획이라고 개발팀은 언급했다. 

토키오는 디스코드(Discord), 플라이아이오(Fly.io), 지캐시 파운데이션(Zcash Foundation), AWS 람다(AWS Lambda) 개발팀에서 네트워크 안정성 및 성능을 개선하는 데 사용돼 왔다. 이는 또한 자바스크립트 및 타입스크립트용 디노(Deno) 런타임에도 사용됐다. 토키오 튜토리얼은 이곳에서 확인할 수 있다. ciokr@idg.co.kr 
 



2021.01.11

러스트용 비동기 런타임 ‘토키오’, 버전 1.0 공개

Paul Krill | InfoWorld
러스트(Rust)용 비동기 런타임 ‘토키오(Tokio) 1.0’이 출시됐다. 속도 저하 없는 안정적인 네트워크 애플리케이션 개발을 지원하는 이 런타임은 TCP/UDP, 타이머(Timer), 멀티-스레드(Multi-threaded), 작업 도용 스케줄러(Work-stealing Scheduler) 등을 위한 비동기 API를 함께 제공한다. 
 
ⓒGetty Images

지난 12월 22일 발표된 ‘토키오 1.0’은 현재 깃허브(GitHub)에서 다운로드 받을 수 있다. 토키오 개발팀은 “4년 전에 처음으로 토키오를 소개했다. 그 이후 토키오는 더 사용하기 쉬워졌고 더 강력해졌다”라고 말했다.

이어서 개발팀은 “그러나 진화해 나가는 과정에서 약간의 문제가 발생했다. 이를테면 많은 변경사항을 추적하기 위해 라이브러리를 필요로 했으며, 실수로 여러 버전의 토키오를 사용하는 경우 혼동되는 에러 메시지가 나타나는 등이었다. 토키오 1.0은 이러한 문제들을 해결한다”라고 덧붙였다. 

개발팀은 향후 3년 내에는 토키오 2.0을 출시할 계획이 없으며, 토키오 1.0 브랜치는 최소 5년 동안 유지할 예정이라고 밝혔다. 또 MSRV(Minimum Supported Rust Version) 정책은 6개월 동안 유지한다고 전했다. 하지만 그렇다고 해서 토키오가 정체되진 않을 것이라고 개발팀은 강조했다. 2021년 토키오 프로젝트가 초점을 맞출 영역들은 다음과 같다. 

• ‘Stream’: 현재 tokio-stream 상자는 스트림 특성(Stream trait)를 기반으로 비동기식 반복 유틸리티를 제공한다. 개발팀에 따르면 스트림 특성을 futures-core에서 러스트 표준 라이브러리로 이동하기 위한 RFC(Request for Comments)가 승인을 기다리고 있다. 러스트 표준 라이브러리가 스트림 특성을 제공하게 되면 스트림 유틸리티를 토키오 자체 상자로 이동할 수 있다. 

• ‘io_uring’: 이는 시스템 호출 수를 줄이면서 디스크를 포함한 모든 타입의 I/O에 비동기 작업을 제공하는 새로운 리눅스 인터페이스다. ‘io_uring’를 활용하면 토키오는 진정한 비동기 파일 시스템 작업을 제공할 수 있다고 개발팀은 설명했다.

• ‘tracing': 개발팀은 트레이싱과 나머지 토키오 스택 간의 긴밀한 통합을 구축해 토키오 내부의 가시성을 제공할 계획이라고 전했다. 또한 트레이싱 생태계를 지속적으로 개선하고 성장시키겠다고 덧붙였다. 

• 토키오 스택(Tokio stack): 신뢰할 수 있는 클라이언트 및 서버를 구축하는 재사용 가능한 컴포넌트 집합 타워(Tower)에 초점을 맞출 계획이라고 개발팀은 언급했다. 

토키오는 디스코드(Discord), 플라이아이오(Fly.io), 지캐시 파운데이션(Zcash Foundation), AWS 람다(AWS Lambda) 개발팀에서 네트워크 안정성 및 성능을 개선하는 데 사용돼 왔다. 이는 또한 자바스크립트 및 타입스크립트용 디노(Deno) 런타임에도 사용됐다. 토키오 튜토리얼은 이곳에서 확인할 수 있다. ciokr@idg.co.kr 
 

X