{"id":22600575,"url":"https://github.com/dracoon/dracoon-swift-sdk","last_synced_at":"2026-02-28T21:32:53.703Z","repository":{"id":55131798,"uuid":"154148958","full_name":"dracoon/dracoon-swift-sdk","owner":"dracoon","description":"Official DRACOON SDK for Swift","archived":false,"fork":false,"pushed_at":"2025-03-28T11:41:12.000Z","size":44880,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-16T10:48:16.448Z","etag":null,"topics":["dracoon","sdk","swift"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dracoon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"Supporting Files/Info.plist","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-10-22T13:28:20.000Z","updated_at":"2025-03-28T11:41:17.000Z","dependencies_parsed_at":"2024-02-27T07:54:29.430Z","dependency_job_id":"e15e3fa3-97c4-4e1c-8611-c7aaded24581","html_url":"https://github.com/dracoon/dracoon-swift-sdk","commit_stats":{"total_commits":393,"total_committers":2,"mean_commits":196.5,"dds":"0.012722646310432517","last_synced_commit":"331e78581ca67022a0bcbecd8dace2eaae4e51c7"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/dracoon/dracoon-swift-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracoon%2Fdracoon-swift-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracoon%2Fdracoon-swift-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracoon%2Fdracoon-swift-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracoon%2Fdracoon-swift-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dracoon","download_url":"https://codeload.github.com/dracoon/dracoon-swift-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dracoon%2Fdracoon-swift-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29952282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T18:42:55.706Z","status":"ssl_error","status_checked_at":"2026-02-28T18:42:48.811Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dracoon","sdk","swift"],"created_at":"2024-12-08T12:10:50.594Z","updated_at":"2026-02-28T21:32:53.684Z","avatar_url":"https://github.com/dracoon.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DRACOON Swift SDK\n\nA library to access DRACOON REST API\n\n# Setup\n\n#### Minimum Requirements\n\nXcode 16\n\n#### Swift Package Manager\n\nAdd this line to the dependencies section of your Package.swift:\n\n`.package(name: \"crypto_sdk\", url: \"https://github.com/dracoon/dracoon-swift-sdk\", .upToNextMajor(from: \"3.0.0\"))`\n\n#### Carthage\n\nAdd the SDK to your Cartfile:\n\n`github \"dracoon/dracoon-swift-sdk.git\" ~\u003e 3.0.0`\n\nThen run\n\n`carthage update --platform iOS`\n\nto create a framework or\n\n`carthage update --use-xcframeworks --platform iOS`\n\nto create an xcframework.\n\n#### CocoaPods\n\nAdd to your Podfile:\n```\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '15.0'\nuse_frameworks!\n\ntarget '\u003cYour Target Name\u003e' do\npod 'DRACOON-SDK', '~\u003e 3.0.0'\nend\n```\nThen run\n\n`pod install`\n\n# Example\n\nToo see how OAuth Code Grant flow works with DRACOON SDK, check out the example app in /Example/oauth2.example.\nBuild it with carthage and make sure to store your configuration to /Example/oauth2.example/oauth2.example/OAuthConfig.swift first.\n\n```swift\n\n// Create authMode\n\n// Use this mode the first time initializing your DracoonClient. authCode is the code from your OAuth2 code flow authorization response.\nlet authMode = DracoonAuthMode.authorizationCode(clientId: clientId, clientSecret: clientSecret, authorizationCode: authCode)\n\n// If you received your access and refresh tokens use this mode to initialize your DracoonClient.\nlet token = DracoonTokens(refreshToken: \"refreshToken\", accessToken: \"accessToken\", timestamp: Date(), accessTokenValidity: 3600)\nlet authMode2 = DracoonAuthMode.accessRefreshToken(clientId: \"clientId\", clientSecret: \"clientSecret\", tokens: token)\n\n// Create client\n\nlet client = DracoonClientImpl(serverUrl: serverUrl, authMode: authMode, getEncryptionPassword: getEncryptionPassword)\n\n// -- Example Requests --\n\n// Nodes\n\nclient.nodes.getNodes(parentNodeId: nodeId, limit: nil, offset: nil, completion: { result in\n  switch result {\n    case .value(let nodeList):\n          // ...\n    case .error(let error):\n          // ...\n  }\n})\n\nclient.nodes.deleteNodes(request: deleteRequest, completion: { result in\n  if let error = result.error {\n    // ...\n  } else {\n    // ...\n  }\n})\n\n// Account\n\nclient.account.getUserAccount(completion: { result in\n   switch result {\n     case .error(let error):\n            // ...\n     case .value(let user):\n            // ...\n    }\n })\n\nclient.account.setUserKeyPair(password: password, completion: { result in\n  switch result {\n    case .error(let error):\n        // ...\n    case .value(let keyPair):\n        // ...\n    }\n})\n\n// Download\nclient.nodes.downloadFile(nodeId: nodeId, targetUrl: url, callback: callback)\n\n// Upload\nclient.nodes.uploadFile(uploadId: uploadId, request: createRequest, filePath: filePath, callback: callback, resolutionStrategy: .autorename)\n\n// Shares\n\nclient.shares.createDownloadShare(nodeId: idToShare, password: sharePassword, completion: { result in\n  switch result {\n    case .error(let error):\n        // ...\n    case .value(let share):\n        // ...\n    }\n})\n\nlet request = CreateUploadShareRequest(targetId: self.nodeId, name: self.containerName){$0.expiration = expiration; $0.password = password; $0.notes = notes}\nclient.shares.requestCreateUploadShare(request: createRequest, completion: { result in\n  switch result {\n    case .error(let error):\n        // ...\n    case .value(let share):\n        // ...\n  }\n})\n\n```\n\n# Copyright and License\n\nSee [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracoon%2Fdracoon-swift-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdracoon%2Fdracoon-swift-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdracoon%2Fdracoon-swift-sdk/lists"}