Repolode
apple

apple/swift-nio

Netty와 유사한 고성능 프로토콜 서버와 클라이언트를 구축하기 위한 크로스 플랫폼 Swift 비동기 이벤트 기반 네트워킹 프레임워크입니다.

스타
8,538
포크
816
열린 이슈
307
마지막 커밋
3일 전

어떤 프로젝트인가요?

SwiftNIO는 비차단 I/O와 이벤트 루프를 사용해 프로토콜 서버와 클라이언트를 구축하는 Swift용 저수준 네트워킹 프레임워크입니다. 연결마다 스레드를 하나씩 할당하는 대신, 소수의 이벤트 루프에서 여러 연결을 다중화하므로 대부분 유휴 상태인 연결을 대량으로 유지하는 서버에 적합합니다. Swift용 Netty 대응 프레임워크로 소개됩니다.

프레임워크는 핵심 구성 요소를 제공합니다. I/O 디스패치용 EventLoopGroup과 EventLoop, 데이터 처리를 위한 Channel 및 ChannelHandlers가 포함된 ChannelPipeline, 바이트 처리를 위한 ByteBuffer, 비동기 결과를 위한 futures와 promises가 있습니다. 모듈에는 POSIX I/O(NIOPosix), 테스트 도우미(NIOEmbedded, NIOTestUtils), 저수준 HTTP/1.1 및 WebSocket 프로토콜 구현이 포함됩니다. TLS, HTTP/2, SSH 및 기타 프로토콜은 별도의 연관 저장소에서 제공됩니다.

SwiftNIO는 최종 사용자용 웹 개발보다는 네트워킹 성능을 세밀하게 제어해야 하는 프레임워크 제작자와 팀을 대상으로 합니다. AsyncHTTPClient, gRPC Swift, PostgresNIO 같은 상위 수준 라이브러리가 SwiftNIO를 기반으로 구축되어 있습니다.

핵심 기능

  • 01플랫폼에 따라 kqueue 또는 epoll을 사용하는 이벤트 루프 기반 비차단 I/O입니다.
  • 02재사용 가능한 프로토콜 핸들러를 조합하는 Channel 및 ChannelPipeline 모델입니다.
  • 03저수준 HTTP/1.1 및 WebSocket 프로토콜 구현입니다.
  • 04효율적인 copy-on-write 바이트 처리를 위한 ByteBuffer입니다.
  • 05실제 네트워킹 없이 프로토콜 코드를 테스트할 수 있는 EmbeddedChannel 및 EmbeddedEventLoop입니다.
  • 06macOS와 Linux를 지원하며, OpenBSD는 실험적으로 지원합니다.

활용 사례

  • 다수의 동시 연결을 처리해야 하는 Swift 기반 커스텀 프로토콜 서버 또는 클라이언트 구축.
  • 비차단 코어를 기반으로 상위 수준의 Swift 네트워킹 라이브러리 또는 웹 프레임워크 개발.
  • 연결마다 스레드를 할당하는 모델의 비용이 너무 큰 성능 민감형 서비스 개발.
  • 임베디드 채널을 사용해 프로토콜 핸들러를 분리된 상태로 단위 테스트.

빠른 시작

  1. 1

    from: "2.0.0"과 같은 버전 범위를 사용해 Package.swift 종속성에 SwiftNIO를 추가합니다

  2. 2

    타깃에 NIO 제품을 추가하고 Swift 코드에서 NIO를 import합니다

사용 전 알아둘 점

  • 고수준 웹 프레임워크가 아닌 저수준 네트워킹 툴킷이므로 이벤트 루프와 채널 모델을 잘 이해해야 합니다.
  • 최근 릴리스에는 더 최신 버전의 Swift 툴체인이 필요합니다. 예를 들어 버전 2.98.0 이상에는 Swift 6.1이 필요합니다.
  • SwiftNIO 1은 지원이 종료되어 새로운 기능이 추가되지 않습니다.

토픽

자주 묻는 질문

swift-nio은(는) 무엇인가요?
Netty와 유사한 고성능 프로토콜 서버와 클라이언트를 구축하기 위한 크로스 플랫폼 Swift 비동기 이벤트 기반 네트워킹 프레임워크입니다. SwiftNIO는 비차단 I/O와 이벤트 루프를 사용해 프로토콜 서버와 클라이언트를 구축하는 Swift용 저수준 네트워킹 프레임워크입니다. 연결마다 스레드를 하나씩 할당하는 대신, 소수의 이벤트 루프에서 여러 연결을 다중화하므로 대부분 유휴 상태인 연결을 대량으로 유지하는 서버에 적합합니다. Swift용 Netty 대응 프레임워크로 소개됩니다.
swift-nio은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
swift-nio은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
swift-nio은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. swift-nio의 마지막 커밋은 2026년 10월 19일입니다.
swift-nio은(는) 어디에 사용할 수 있나요?
다수의 동시 연결을 처리해야 하는 Swift 기반 커스텀 프로토콜 서버 또는 클라이언트 구축. 비차단 코어를 기반으로 상위 수준의 Swift 네트워킹 라이브러리 또는 웹 프레임워크 개발. 연결마다 스레드를 할당하는 모델의 비용이 너무 큰 성능 민감형 서비스 개발. 임베디드 채널을 사용해 프로토콜 핸들러를 분리된 상태로 단위 테스트.
swift-nio는 어떻게 설치하나요?
from: "2.0.0"과 같은 버전 범위를 사용해 Package.swift 종속성에 SwiftNIO를 추가합니다 타깃에 NIO 제품을 추가하고 Swift 코드에서 NIO를 import합니다
swift-nio은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/apple/swift-nio

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트