Swiftpack.co - GetStream/stream-swift as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by GetStream.
GetStream/stream-swift 2.2.4
Swift client for Stream API
⭐️ 33
🕓 1 year ago
.package(url: "https://github.com/GetStream/stream-swift.git", from: "2.2.4")

Stream Swift Client

Build Status Code Coverage Language: Swift 4.2 Documentation CocoaPods compatible Carthage compatible Swift Package Manager compatible

stream-swift is a Swift client for Stream.

You can sign up for a Stream account at https://getstream.io/get_started.

API Docs

API Examples



For Stream, use the following entry in your Podfile:

for Swift 5:

pod 'GetStream', '~> 2.0'

for Swift 4.2:

pod 'GetStream', '~> 1.0'

Then run pod install.

In any file you'd like to use Stream in, don't forget to import the framework with import GetStream.

Swift Package Manager

To integrate using Apple's Swift package manager, add the following as a dependency to your Package.swift:

.package(url: "https://github.com/GetStream/stream-swift.git", .upToNextMajor(from: "1.0.0"))


Make the following entry in your Cartfile:

github "GetStream/stream-swift"

Then run carthage update.

Quick start

// Setup a shared Stream client.
Client.config = .init(apiKey: "<#ApiKey#>", appId: "<#AppId#>", token: "<#Token#>")

// Setup a Stream current user with the userId from the Token.
Client.shared.createCurrentUser() { _ in 
    // Do all your requests from here. Reload feeds and etc.

// Create a user feed.
let userFeed = Client.shared.flatFeed(feedSlug: "user")

// Create an Activity. You can make own Activity class or struct with custom properties.
let activity = Activity(actor: User.current!, verb: "add", object: "picture:10", foreignId: "picture:10")

userFeed?.add(activity) { result in
    // A result of the adding of the activity.

// Create a following relationship between "timeline" feed and "user" feed:
let timelineFeed = Client.shared.flatFeed(feedSlug: "timeline")

timelineFeed?.follow(toTarget: userFeed!.feedId, activityCopyLimit: 1) { result in

// Read timeline and user's post appears in the feed:
timelineFeed?.get(pagination: .limit(10)) { result in
    let response = try! result.get()

// Remove an activity by referencing it's foreignId
userFeed?.remove(foreignId: "picture:10") { result in

More API examples here

Credits & Contributors

Project is maintained by Alexey Bukhtin.

We continue to welcome pull requests from community members.

Copyright and License Information

Copyright (c) 2016-2018 Stream.io Inc, and individual contributors. All rights reserved.

See the file "LICENSE" for information on the history of this software, terms & conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.


Stars: 33
Last commit: 3 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Related Packages

Release Notes

2 years ago

🐞 Fixed

  • ISO8601DateFormatter.Options.withFractionalSeconds option for ISO8601DateFormatter causes an exception in iOS11 (fixed in iOS11.2) #24

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics