Repolode
valyala

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. 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 통계는 매일 갱신됩니다.

관련 프로젝트