블로킹 소켓 I/O로 HTTP/HTTPS 서버와 클라이언트를 구축할 수 있는 C++11 단일 헤더 라이브러리입니다.
valyala/fasthttp
높은 처리량과 낮은 할당 오버헤드가 필요한 워크로드를 위해 설계된 Go용 고성능 HTTP 서버 및 클라이언트 구현입니다.
- 스타
- 23,489
- 포크
- 1,883
- 열린 이슈
- 66
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
fasthttp는 서버와 클라이언트 API를 모두 제공하는 Go용 HTTP 구현체입니다. 매우 많은 요청이 발생하는 상황에 맞춰 설계되어 요청과 응답 객체를 재사용하고, 핫 패스에서 메모리 할당을 피합니다. README의 벤치마크에서는 측정 환경에 따라 net/http보다 서버는 최대 약 6배, 클라이언트는 최대 약 4배 빠른 것으로 보고합니다.
API는 의도적으로 net/http와 다르게 설계되었습니다. 핸들러는 *RequestCtx 인자 하나를 받고 ServeMux는 없으므로, Fiber 같은 서드파티 라우터나 프레임워크를 사용해 라우팅해야 합니다. 핸들러가 반환되기 전이라면 응답 헤더와 본문을 어떤 순서로든 쓸 수 있습니다. 기존 코드를 마이그레이션하려면 핸들러를 이에 맞게 수정하고, 핸들러가 반환된 뒤 컨텍스트를 참조하지 않도록 해야 합니다.
프로젝트 README에서는 대부분의 애플리케이션에 net/http를 권장합니다. 사용하기 쉽고, 더 많은 HTTP 예외 상황을 처리하며, HTTP/2를 지원하기 때문입니다. fasthttp는 초당 수천 건의 중소 규모 요청을 처리하면서 일관되게 낮은 지연 시간을 유지해야 하는 서비스에 가장 적합합니다.
핵심 기능
- 01할당을 줄이기 위해 요청 및 응답 객체를 재사용하는 서버·클라이언트 API를 제공합니다.
- 02핸들러는 RequestCtx 하나를 인자로 받으며, 헤더와 본문은 어떤 순서로든 쓸 수 있습니다.
- 03멀티코어 확장을 위해 reuseport 리스너와 코어별 배포 패턴을 지원합니다.
- 04net/http 핸들러 변환, 파일 제공, 타임아웃 처리를 위한 헬퍼를 제공합니다.
- 05README FAQ에 따르면 Go 1.26 이상이 필요합니다.
활용 사례
- 대량의 소규모 요청을 처리하는 고처리량 API 게이트웨이 또는 프록시.
- 메모리 할당 부담이 측정된 병목인 지연 시간 민감형 Go 서비스.
- 단일 서버에서 다수의 keep-alive 연결을 처리하는 엣지 서비스.
빠른 시작
- 1
Go로 라이브러리 설치하기
go get -u github.com/valyala/fasthttp
사용 전 알아둘 점
- fasthttp는 net/http를 그대로 대체할 수 있는 라이브러리가 아니며 API도 다릅니다.
- README에 따르면 매우 높은 처리량이 필요한 경우가 아니라면 일반적으로 net/http를 사용하는 편이 더 좋습니다.
토픽
자주 묻는 질문
- fasthttp은(는) 무엇인가요?
- 높은 처리량과 낮은 할당 오버헤드가 필요한 워크로드를 위해 설계된 Go용 고성능 HTTP 서버 및 클라이언트 구현입니다. fasthttp는 서버와 클라이언트 API를 모두 제공하는 Go용 HTTP 구현체입니다. 매우 많은 요청이 발생하는 상황에 맞춰 설계되어 요청과 응답 객체를 재사용하고, 핫 패스에서 메모리 할당을 피합니다. README의 벤치마크에서는 측정 환경에 따라 net/http보다 서버는 최대 약 6배, 클라이언트는 최대 약 4배 빠른 것으로 보고합니다.
- fasthttp은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- fasthttp은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- fasthttp은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. fasthttp의 마지막 커밋은 2026년 10월 21일입니다.
- fasthttp은(는) 어디에 사용할 수 있나요?
- 대량의 소규모 요청을 처리하는 고처리량 API 게이트웨이 또는 프록시. 메모리 할당 부담이 측정된 병목인 지연 시간 민감형 Go 서비스. 단일 서버에서 다수의 keep-alive 연결을 처리하는 엣지 서비스.
- fasthttp는 어떻게 설치하나요?
- Go로 라이브러리 설치하기: go get -u github.com/valyala/fasthttp
- fasthttp은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/valyala/fasthttp
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
세션, 쿠키, 인증, JSON을 지원하는 간결하고 세련된 Python HTTP/1.1 요청 라이브러리입니다.
C로 작성된 고성능 웹 서버, 리버스 프록시, 로드 밸런서, API 게이트웨이 및 콘텐츠 캐시입니다.
Martini와 비슷한 API를 제공하며 REST API, 웹 앱, 마이크로서비스 구축에 적합한 고성능 Go HTTP 웹 프레임워크입니다.
주석이 달린 인터페이스 메서드를 네트워크 호출로 변환하는 Android 및 Java용 타입 안전 HTTP 클라이언트입니다.
REST, GraphQL, WebSocket, SSE, Socket.IO, MQTT 요청을 보내는 오픈소스 API 개발 도구 모음