https://github.com/savonrb/savon
Heavy metal SOAP client
https://github.com/savonrb/savon
Keywords
ruby soap soap-client
Keywords from Contributors
activerecord activejob mvc rubygems rack rspec sinatra grape multithreading ruby-gem
Last synced: about 15 hours ago
JSON representation
Repository metadata
Heavy metal SOAP client
- Host: GitHub
- URL: https://github.com/savonrb/savon
- Owner: savonrb
- License: mit
- Created: 2009-07-02T13:19:34.000Z (almost 17 years ago)
- Default Branch: main
- Last Pushed: 2026-06-05T13:52:01.000Z (11 days ago)
- Last Synced: 2026-06-07T12:02:12.552Z (9 days ago)
- Topics: ruby, soap, soap-client
- Language: Ruby
- Homepage: https://savonrb.com
- Size: 2.95 MB
- Stars: 2,087
- Watchers: 37
- Forks: 612
- Open Issues: 13
- Releases: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
README.md
Savon
Heavy metal SOAP client
Savon is a SOAP client for Ruby. SOAP is the protocol spoken by many enterprise systems. When they hand you a WSDL URL or file instead of a REST spec, it's SOAP. Savon reads the WSDL, maps available operations to Ruby symbols, converts Ruby hashes to SOAP envelopes and turns XML responses into hashes you can work with.
Full documentation is at savonrb.com.
Installation
gem 'savon', '~> 2.17'
Usage
require 'savon'
# Point Savon to a local or remote WSDL document
client = Savon.client(wsdl: 'https://service.example.com?wsdl')
# See what the service exposes
client.operations
# => [:find_user, :create_user]
# Make a request and work with the response
response = client.call(:find_user, message: { id: 42 })
response.body[:find_user_response]
# => { id: 42, name: "Hoff" }
# Savon raises a Savon::SOAPFault when the server returns a SOAP fault
rescue Savon::SOAPFault => e
puts e.to_hash.dig(:fault, :faultstring)
Enable logging to see the raw SOAP envelopes. That's probably the single most useful thing while getting a new integration working:
client = Savon.client(
wsdl: 'https://service.example.com?wsdl',
pretty_print_xml: true,
log: true
)
Authentication
Most enterprise services require authentication. Common options:
# HTTP basic auth
Savon.client(wsdl: '...', basic_auth: ['user', 'secret'])
# WS-Security (WSSE)
Savon.client(wsdl: '...', wsse_auth: ['user', 'secret', :digest], wsse_timestamp: true)
See Authentication on the website for HTTP digest, NTLM, and certificate-based options.
Transport
Savon uses HTTPI for HTTP by default. Since v2.17.0 you can opt-in to use Faraday by passing transport: :faraday which exposes the Faraday connection at client.faraday for you to configure. Savon is only adding some SOAP-specifics on top.
Ruby support
Savon 2.x requires Ruby >= 3.0.0, kept as the lower bound for backward compatibility. Note that Ruby 3.0–3.3 are EOL or security-only. Ruby 3.4+ is the minimum version with active maintenance.
Versioning & stability
Savon follows Semantic Versioning 2.0.0. The changelog format is Keep a Changelog.
The 2.x line is anchored on 2.12.1. Every 2.x release is supposed to be safe to upgrade to from 2.12.1, and anything that worked in 2.12.1 keeps working. We do not remove or rename public APIs in the 2.x line. New behavior is opt-in and requires an explicit option change. If you found a problem with that, please let us know.
We only soft-deprecate APIs we plan to remove. The Deprecated sections of the changelog list every API that is planned to be removed with version 3.0.
Callers on 2.13.0–2.15.x may see specific post-2.12.1 behaviors restored to the 2.12.1 contract. This is intentional.
Known limitations
WSDL imports are not followed. Savon parses only the root WSDL document via Wasabi. Messages, port types, and bindings defined in imported files are invisible to Savon. If you control the WSDL, merge the imported elements into the root document and pass that to Savon as a string. If you need full import support, the WSDL gem is an alternative.
Contributing
See CONTRIBUTING.md. MIT licensed.
Owner metadata
- Name: savonrb
- Login: savonrb
- Email:
- Kind: organization
- Description:
- Website: https://www.savonrb.com/
- Location:
- Twitter: savonrb
- Company:
- Icon url: https://avatars.githubusercontent.com/u/2353495?v=4
- Repositories: 12
- Last ynced at: 2024-03-25T19:56:36.386Z
- Profile URL: https://github.com/savonrb
GitHub Events
Total
- Release event: 2
- Delete event: 3
- Pull request event: 20
- Fork event: 5
- Issues event: 11
- Watch event: 18
- Issue comment event: 33
- Push event: 23
- Pull request review comment event: 7
- Pull request review event: 9
- Create event: 7
Last Year
- Release event: 2
- Delete event: 3
- Pull request event: 6
- Fork event: 1
- Issues event: 3
- Watch event: 5
- Issue comment event: 10
- Push event: 17
- Pull request review comment event: 5
- Pull request review event: 4
- Create event: 7
Committers metadata
Last synced: 3 days ago
Total Commits: 1,585
Total Committers: 129
Avg Commits per committer: 12.287
Development Distribution Score (DDS): 0.218
Commits in past year: 69
Committers in past year: 5
Avg Commits per committer in past year: 13.8
Development Distribution Score (DDS) in past year: 0.145
| Name | Commits | |
|---|---|---|
| rubiii | me@r****m | 1239 |
| Tim Jarratt | t****t@g****m | 65 |
| Peter Cai | 2****i | 56 |
| Olle Jonsson | o****n@g****m | 29 |
| ashrocket | a****y@r****t | 8 |
| Anthony Dmitriyev | a****m@g****m | 6 |
| Ollivier Robert | r****o@k****t | 6 |
| hoverlover | h****r@g****m | 5 |
| Brian Fujito | b****o@g****m | 4 |
| Dave Woodward | d****e@f****m | 4 |
| Fredrik Wallgren | f****n@g****m | 4 |
| Nathan Samson | n****n@n****e | 4 |
| dependabot[bot] | 4****] | 4 |
| Christian Haase | c****e@i****m | 3 |
| Jakob Skjerning | j****b@m****t | 3 |
| Tim Abdulla | me@t****m | 3 |
| Tsyren Ochirov | n****m@g****m | 3 |
| colonhyphenp | d****e@g****m | 3 |
| sshaw | s****w@g****m | 3 |
| Jim Kingdon | j****n@m****m | 3 |
| Ayrat Badykov | a****5@g****m | 2 |
| Andrey Novikov | e****k@e****e | 2 |
| Alexander Kovalenko | a****3@g****m | 2 |
| Adrian Mugnolo | a****n@m****m | 2 |
| Avin Mathew | a****w@a****m | 2 |
| Grant Defayette | g****e@t****m | 2 |
| JP Moral | jp@a****m | 2 |
| Josh Martin | j****n@w****m | 2 |
| Bruno Aguirre | yo@b****m | 2 |
| Connor Shea | 2****a | 2 |
| and 99 more... | ||
Committer domains:
- aelogica.com: 2
- yandex.ru: 2
- syguer.com: 1
- comcard.de: 1
- mattkirman.com: 1
- celik.be: 1
- sourcebits.com: 1
- secure-24.com: 1
- zertico.com: 1
- reinke.co: 1
- kickstarter.com: 1
- squareup.com: 1
- flatironschool.com: 1
- rankia.com: 1
- evolvit.fi: 1
- lokalebasen.dk: 1
- theclymb.com: 1
- weblinc.com: 1
- jc00ke.com: 1
- brunoaguirre.com: 1
- wildfireapp.com: 1
- thenortheastgroup.com: 1
- assetricity.com: 1
- mugnolo.com: 1
- envek.name: 1
- mdlogix.com: 1
- timabdulla.com: 1
- mentalized.net: 1
- ifu.com: 1
- nathansamson.be: 1
- futuremint.com: 1
- keltia.net: 1
- raiteri.net: 1
- unact.ru: 1
- payrailz.com: 1
- thanx.com: 1
- malditainternet.com: 1
- basecamp.tirol: 1
- vawks.com: 1
- emmanuelsambo.com: 1
- hashnotadam.com: 1
- tidey.net: 1
- rage.net: 1
- piklus.pl: 1
- owiesniak.io: 1
- janraasch.com: 1
- jeroenj.be: 1
- xaop.com: 1
- keithpitty.com: 1
- rubiii.com: 1
- cerner.com: 1
- simplybusiness.co.uk: 1
- vodafone.com.au: 1
- digineo.de: 1
- localhost.localdomain: 1
- opower.com: 1
- puppetlabs.com: 1
- arenaflowers.com: 1
- aktechnicalconsultants.com: 1
- coupa.com: 1
- me.com: 1
- ecraft.com: 1
- ifdown.net: 1
- oriontransfer.co.nz: 1
- davidbiehl.com: 1
- glowacz.info: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 70
Total pull requests: 99
Average time to close issues: about 1 year
Average time to close pull requests: 6 months
Total issue authors: 59
Total pull request authors: 38
Average comments per issue: 4.71
Average comments per pull request: 1.84
Merged pull request: 70
Bot issues: 0
Bot pull requests: 3
Past year issues: 4
Past year pull requests: 14
Past year average time to close issues: 7 months
Past year average time to close pull requests: about 14 hours
Past year issue authors: 3
Past year pull request authors: 5
Past year average comments per issue: 0.5
Past year average comments per pull request: 0.36
Past year merged pull request: 11
Past year bot issues: 0
Past year bot pull requests: 3
Top Issue Authors
- pcai (5)
- olleolleolle (4)
- doconnor-clintel (3)
- moiristo (2)
- migalenkom (2)
- aleksandrs-ledovskis (1)
- jules-w2 (1)
- aedryan (1)
- luispcosta (1)
- atrzaska (1)
- sarahsehr (1)
- scottbarrow (1)
- choosen (1)
- DonGiulio (1)
- lukaso (1)
Top Pull Request Authors
- olleolleolle (18)
- pcai (12)
- rubiii (8)
- doconnor-clintel (8)
- LukeIGS (5)
- larskanis (4)
- kjeldahl (4)
- dependabot[bot] (3)
- magneland (2)
- lluis (2)
- ekzobrain (2)
- ehutzelman (2)
- dduugg (2)
- gogainda (2)
- Ezveus (2)
Top Issue Labels
- stale (17)
- Question (1)
Top Pull Request Labels
- Dependencies (4)
- github_actions (3)
Package metadata
- Total packages: 5
-
Total downloads:
- rubygems: 193,636,191 total
- Total docker downloads: 14,451,580
- Total dependent packages: 602 (may contain duplicates)
- Total dependent repositories: 4,963 (may contain duplicates)
- Total versions: 268
- Total maintainers: 5
gem.coop: savon
Heavy metal SOAP client
- Homepage: https://savonrb.com
- Documentation: http://www.rubydoc.info/gems/savon/
- Licenses: MIT
- Latest release: 2.17.2 (published 6 days ago)
- Last Synced: 2026-06-12T22:01:23.878Z (3 days ago)
- Versions: 97
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 96,812,640 Total
- Docker Downloads: 7,225,790
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Downloads: 0.283%
- Average: 0.351%
- Docker downloads count: 1.123%
- Maintainers (4)
rubygems.org: savon
Heavy metal SOAP client
- Homepage: https://savonrb.com
- Documentation: http://www.rubydoc.info/gems/savon/
- Licenses: MIT
- Latest release: 2.17.2 (published 6 days ago)
- Last Synced: 2026-06-13T00:32:00.568Z (3 days ago)
- Versions: 97
- Dependent Packages: 602
- Dependent Repositories: 4,963
- Downloads: 96,815,399 Total
- Docker Downloads: 7,225,790
-
Rankings:
- Dependent packages count: 0.075%
- Downloads: 0.281%
- Dependent repos count: 0.45%
- Average: 0.762%
- Forks count: 0.907%
- Stargazers count: 1.114%
- Docker downloads count: 1.743%
- Maintainers (4)
proxy.golang.org: github.com/savonrb/savon
- Homepage:
- Documentation: https://pkg.go.dev/github.com/savonrb/savon#section-documentation
- Licenses: mit
- Latest release: v2.17.2+incompatible (published 6 days ago)
- Last Synced: 2026-06-11T14:23:45.040Z (5 days ago)
- Versions: 72
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.456%
- Average: 6.674%
- Dependent repos count: 6.892%
gem.coop: savon_with_adapter
Heavy metal SOAP client that can accept adapter option
- Homepage: https://github.com/savonrb/savon/pull/566
- Documentation: http://www.rubydoc.info/gems/savon_with_adapter/
- Licenses: MIT
- Latest release: 2.4.1 (published about 12 years ago)
- Last Synced: 2026-06-11T14:23:29.419Z (5 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 4,076 Total
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 26.438%
- Downloads: 79.314%
- Maintainers (1)
rubygems.org: savon_with_adapter
Heavy metal SOAP client that can accept adapter option
- Homepage: https://github.com/savonrb/savon/pull/566
- Documentation: http://www.rubydoc.info/gems/savon_with_adapter/
- Licenses: MIT
- Latest release: 2.4.1 (published about 12 years ago)
- Last Synced: 2026-06-11T14:23:29.379Z (5 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 4,076 Total
-
Rankings:
- Forks count: 0.822%
- Stargazers count: 1.008%
- Dependent packages count: 15.706%
- Average: 29.089%
- Dependent repos count: 46.782%
- Downloads: 81.128%
- Maintainers (1)
Dependencies
- actions/checkout df4cb1c069e1874edd31b4311f1884172cec0e10 composite
- ruby/setup-ruby afeafc3d1ab54a631816aba4c914a0081c12ff2f composite
- rubygems/release-gem 6317d8d1f7e28c24d28f6eff169ea854948bd9f7 composite
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
- httpclient ~> 2.7.1
- simplecov >= 0
- byebug >= 0 development
- json >= 2.3.0 development
- mocha ~> 0.14 development
- puma >= 4.3.8, < 7 development
- rack < 4 development
- rake >= 12.3.3 development
- rspec ~> 3.9 development
- akami ~> 1.2
- builder >= 2.1.2
- gyoku ~> 1.2
- httpi >= 2.4.5
- mail ~> 2.5
- nokogiri >= 1.8.1
- nori ~> 2.4
- wasabi ~> 3.4
Score: 31.66300249288542