All Projects → Bouke → Lark

Bouke / Lark

Licence: other
Swift SOAP Client

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Lark

Xmlmapper
A simple way to map XML to Objects written in Swift
Stars: ✭ 90 (+73.08%)
Mutual labels:  soap, swift-package-manager
Spyne
A transport agnostic sync/async RPC library that focuses on exposing services with a well-defined API using popular protocols.
Stars: ✭ 992 (+1807.69%)
Mutual labels:  soap
Readabilitykit
Preview extractor for news, articles and full-texts in Swift
Stars: ✭ 756 (+1353.85%)
Mutual labels:  swift-package-manager
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types 🚀
Stars: ✭ 31 (-40.38%)
Mutual labels:  swift-package-manager
Preferences
⚙ Add a preferences window to your macOS app in minutes
Stars: ✭ 898 (+1626.92%)
Mutual labels:  swift-package-manager
Queuer
Queuer is a queue manager, built on top of OperationQueue and Dispatch (aka GCD).
Stars: ✭ 964 (+1753.85%)
Mutual labels:  swift-package-manager
Defaults
Swifty and modern UserDefaults
Stars: ✭ 734 (+1311.54%)
Mutual labels:  swift-package-manager
Wstagsfield
An iOS text field that represents tags, hashtags, tokens in general.
Stars: ✭ 1,013 (+1848.08%)
Mutual labels:  swift-package-manager
Xclogparser
Tool to parse Xcode and xcodebuild logs stored in the xcactivitylog format
Stars: ✭ 978 (+1780.77%)
Mutual labels:  swift-package-manager
Bettercodable
Better Codable through Property Wrappers
Stars: ✭ 953 (+1732.69%)
Mutual labels:  swift-package-manager
Ascollectionview
A SwiftUI collection view with support for custom layouts, preloading, and more.
Stars: ✭ 878 (+1588.46%)
Mutual labels:  swift-package-manager
Taniwhatextfield
My first cocoapod framework
Stars: ✭ 26 (-50%)
Mutual labels:  swift-package-manager
Scenekit Bezier Animations
Create animations over Bezier curves of any number of points
Stars: ✭ 35 (-32.69%)
Mutual labels:  swift-package-manager
Statusalert
Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.
Stars: ✭ 809 (+1455.77%)
Mutual labels:  swift-package-manager
Fontblaster
Programmatically load custom fonts into your iOS and tvOS app.
Stars: ✭ 1,000 (+1823.08%)
Mutual labels:  swift-package-manager
Url Image
Asynchronous image loading in SwiftUI. Lightweight, pure SwiftUI Image view, that displays an image downloaded from URL, with auxiliary views and local cache.
Stars: ✭ 747 (+1336.54%)
Mutual labels:  swift-package-manager
Php Sdicoop Client
A PHP package for connecting to Italian Exchange System (aka SdI) web services. (Pacchetto PHP per inviare fatture e notifiche ai webservices del SdI).
Stars: ✭ 14 (-73.08%)
Mutual labels:  soap
Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (+1751.92%)
Mutual labels:  swift-package-manager
Scenekit Scnline
Draw a tube or thick line in SceneKit
Stars: ✭ 49 (-5.77%)
Mutual labels:  swift-package-manager
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-23.08%)
Mutual labels:  swift-package-manager

Lark: Swift SOAP Client

Lark is a SOAP library written in Swift.

Build Status

Features

  • [x] Swift 4
  • [x] Swift Package Manager
  • [x] API Client code generation
  • [x] Strictly typed
  • [x] SOAP 1.1
  • [x] SOAP document/literal (wrapped) encoding
  • [x] Both synchronous and asynchronous

Communication

  • If you need help, open an issue.
  • If you'd like to ask a general question, open an issue.
  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Usage

First, install the package by including the following in Package.swift:

.Package(url: "https://github.com/Bouke/Lark.git", majorVersion: 0)

Then, build your package. This will result in an executable named lark-generate-client which can generate the client code:

swift build
.build/debug/lark-generate-client "http://localhost:8000/?wsdl" > Sources/Client.swift

In your code you can now use the generated Client like this:

let client = HelloWorldServiceClient()

To call a remote method, inspect the generated functions on the Client. For example the sayHello method that takes a SayHello parameter and returns a SayHelloResponse:

let result = try client.sayHello(SayHello(name: "World", times: 2))
print(result.sayHelloResult)

Or if you're building a GUI that requires non-blocking networking, use the async version:

client.sayHelloAsync(SayHello(name: "World", times: 2)) { result in
    print(result?.value.sayHelloResult)
}

More information can be found in the documentation.

Example

See the Lark-Example repository for an example of how to use Lark.

Swift Compatibility

Swift 4 is required with version 1 of this package. Use version 0 if you need Swift 3 compatibility.

FAQ

Is Linux supported?

Not yet. This library builds on various XMLDocument APIs that are either not available in Swift-Foundation (the Swift port of some Foundation APIs) or behave differently. Also a major dependency, AlamoFire, is not yet supported on iOS. To track the progress on this, subscribe to ticket 22.

Is iOS supported?

No. This library builds on various XMLDocument APIs that are not available on iOS. Switching to another XML library might help here, but I don't have the need for this. Feel free to reach out to me if you're interested in working on a pull request to change this.

Can it act as a SOAP server?

No. Feel free to reach out to me if you're interested in working on a pull request to change this.

Is CocoaPods / Carthage supported?

No.

Why is it called Lark?

SOAP is sometimes referred to as a fat messaging protocol. Swift is an elegant bird. A Lark sometimes looks like a fat bird.

Credits

This library was written by Bouke Haarsma.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].