TL;DR

  • Google Cloud API 클라이언트 라이브러리가 Swift 6.2~6.4를 지원하고 Linux 서버 환경에서 정식 출시(GA) 상태에 도달했으며, 0.4.0부터 프로덕션 사용이 가능함.
  • GoogleCloudStorage의 StorageControlClient를 사용해 프로젝트와 버킷 설정을 지정하고 스토리지 버킷을 생성하는 비동기 Swift 예제를 제공함.
  • Swift Package Manager(SPM)에서 패키지 버전 0.3.0 이상을 추가하고 GoogleCloudStorage 타깃 의존성을 연결하는 절차를 안내함.
  • Linux는 Ubuntu 24.04 및 호환 배포판에서 별도 Package.swift 플랫폼 설정 없이 지원되며, macOS는 15 이상이 필요함.
  • 1.0 이전에는 일부 소규모 호환성 중단 변경이 가능하며, 1.0 이후에는 시맨틱 버전 관리와 Google의 오픈소스 라이브러리 호환성 정책을 따름.

Google Cloud API 클라이언트 라이브러리 for Swift

  • Google Cloud Platform 서비스용으로 관용적인 Swift 클라이언트 라이브러리를 제공함.

빠른 시작

  • GoogleCloudStorage의 StorageControlClient를 사용해 프로젝트 ID와 버킷 ID를 지정하고, 표준 스토리지 클래스와 미국 리전을 설정해 버킷을 생성하는 비동기 예제를 제공함.
  • Swift Package Manager에서 swift-google-cloud-storage 패키지를 버전 0.3.0 이상으로 추가한 뒤, 대상에 GoogleCloudStorage 의존성을 추가하는 방식임.
  • 패키지 주소: https://github.com/googleapis/swift-google-cloud-storage.git
  • 인증 및 프로젝트 설정을 포함한 단계별 안내는 시작 가이드에서 확인할 수 있음.

문서

  • 사용자 가이드와 호스팅 문서에서 인증, 오류 처리, 재시도, 장기 실행 작업, 페이지네이션, 패키지 트레이트 및 서비스별 사용법을 다룸.
  • 저장소의 guide/ 디렉터리에 로컬 DocC 문서 소스가 포함됨.

요구 사항

최소 지원 Swift 버전

  • 현재 Swift 6.2, 6.3, 6.4를 포함한 최신 마이너 버전 3개를 지원하고 테스트함.
  • 새로운 Swift 버전이 제공되면 최소 지원 버전을 주기적으로 갱신함.

지원 플랫폼

  • Linux는 서버 사이드 환경에서 완전히 지원되며, Ubuntu 24.04 및 호환 배포판에서 테스트됨. Package.swift에 플랫폼 설정을 추가할 필요가 없음.
  • macOS는 로컬 개발과 배포를 위해 macOS 15 이상에서 지원되며, macOS에서 빌드할 때 Package.swift에 .macOS(.v15) 플랫폼을 설정해야 함.

상태 및 안정성

  • 이 프로젝트는 0.4.0 릴리스부터 정식 출시(GA) 상태임.
  • 0.x 릴리스는 프로덕션 사용을 지원하고 필요한 수정 사항을 제공하지만, 1.0 출시 전까지 소규모 호환성 중단 변경을 도입할 수 있음.

시맨틱 버전 관리

  • 라이브러리가 1.0에 도달한 뒤에는 호환성 중단 변경을 피하기 위해 모든 노력을 기울임.
  • 프로젝트 내 여러 패키지는 서비스 명세에서 자동 생성되며, 서비스 명세에 호환성 중단 변경이 포함될 수 있음.
  • 호환성 중단 변경을 감지하기 위해 합리적인 수준의 노력을 기울이고 도구를 사용함. 감지된 경우 메이저 버전을 올리며, 0.x 패키지는 마이너 버전을 올림.
  • swift-tools-version 변경은 호환성 중단 변경으로 간주하지 않음.
  • 의존성 변경이나 의존성에서 활성화되는 패키지 트레이트 변경도 호환성 중단 변경으로 간주하지 않음.
  • 애플리케이션에서 필요한 의존성을 직접 추가하고, 해당 의존성의 기본값이 아닌 패키지 트레이트를 명시적으로 활성화해야 함.

공개 API 및 안정성

  • Google의 오픈소스 라이브러리 호환성 중단 변경 정책을 따름.
  • 공개 API는 각 패키지의 Package.swift에 선언된 라이브러리 제품과 해당 제품이 내보내는 public 및 open 심볼로 구성됨.
  • _로 시작하거나 @_spi(GoogleCloudInternal)이 지정된 심볼, 또는 내보내지 않는 타깃에 포함된 심볼은 내부 구현 세부 사항이며 사전 고지 없이 변경될 수 있음.
  • 자세한 내용과 사용 지침은 공개 API 정책에서 확인할 수 있음.

기여

  • 라이브러리 기여를 언제나 환영하며 적극 권장함.
  • 시작 방법은 CONTRIBUTING 문서에서 확인할 수 있으며, 개발 환경 설정 가이드도 참고할 수 있음.

라이선스

  • Apache 2.0 라이선스를 적용하며 자세한 내용은 LICENSE에서 확인할 수 있음.