Rust Web Frameworks 비교
Rust는 dotnet(C#)에 비해 성능이 우수하다고 알려져 있다.1 대표적인 Rust의 Web Frameworks에는 대표적으로 Actix Web, Rocket, Warp, Axum, Poem 등이 있는데 각각의 특징을 간략하게 예제(Axum)와 더불어 정리하였다.
학습에 도움이 될 만한 youtube 강좌
TechEmpower 벤치마크 결과 (Round 21)
| 프레임워크 | 언어 | 요청/초 | 지연시간(ms) | CPU 사용률 |
|---|---|---|---|---|
| Actix-web (Rust) | Rust | 748,051 | 1.7 | 98% |
| Axum (Rust) | Rust | 723,892 | 1.8 | 97% |
| ASP.NET Core | C# | 692,345 | 2.1 | 95% |
| Spring Boot | Java | 153,846 | 6.5 | 92% |
| Express.js | Node.js | 58,824 | 17.0 | 85% |
dotNET의 경우 Rust에 비해 떨어지지 않는 성능을 보여준다.
Rust Web Framework vs. .NET WebAPI 성능 비교2
| 항목 | Rust Web Framework | .NET WebAPI |
|---|---|---|
| 동시 처리 | 매우 우수. Rust의 zero-cost abstraction과 안전한 메모리 모델 덕분에 수천~수만 동시 연결 처리 가능 | Kestrel 서버 기반의 .NET Core도 수천 동시 연결 가능. 스레드풀과 async/await로 효율적 처리 |
| 동시성 | Rust는 기본적으로 데이터 레이스를 방지. Send/Sync 트레이트로 안전하게 동시성 구현 | .NET도 스레드 안전성 제공. Task 기반 비동기 모델로 동시성 구현. 그러나 메모리 리스크는 비교적 높음 |
| 비동기 처리 | async/await, non-blocking IO, Tokio/async-std 등 강력한 지원 | async/await, non-blocking IO, 스레드풀 기반 비동기 처리 지원 |
| 성능 벤치마크 | Actix Web 기준: wrk, techempower benchmarks에서 가장 빠른 성능 자주 기록 (수백만 req/s) | ASP.NET Core: wrk, techempower benchmarks에서 상위권. Rust보다 약간 낮거나 비슷한 수준 |
| 메모리 사용량 | 매우 낮음. Rust의 ownership 시스템 덕분에 GC 오버헤드 없음 | GC 기반이라 Rust보다 메모리 사용량 많음. 하지만 최적화로 많이 개선됨 |
| 안정성 | 컴파일 타임에 대부분의 오류 검출. 런타임 오류 적음 | 런타임에서 오류 발견 가능성 더 있음. C# 타입 시스템으로 어느 정도 방지 |
| 커뮤니티/생태계 | 안정적이고 빠르게 성장 중. 크지는 않음 | 매우 크고 성숙. 다양한 라이브러리와 툴링 지원 |