<commit_before># ActiveShipping [![Build status](https://travis-ci.org/Shopify/active_shipping.svg?branch=master)](https://travis-ci.org/Shopify/active_shipping)

This library interfaces with the web services of various shipping carriers. The goal is to abstract the features that are most frequently used into a pleasant and consistent Ruby API:

- Finding shipping rates
- Registering shipments
- Tracking shipments
- Purchasing shipping labels

## Supported Shipping Carriers

* [UPS](http://www.ups.com)
* [USPS](http://www.usps.com)
* [USPS Returns](http://returns.usps.com)
* [FedEx](http://www.fedex.com)
* [Canada Post](http://www.canadapost.ca)
* [New Zealand Post](http://www.nzpost.co.nz)
* [Shipwire](http://www.shipwire.com)
* [Stamps](http://www.stamps.com)
* [Kunaki](http://www.kunaki.com)
* [Australia Post](http://auspost.com.au/)


## Versions
Note: `2.x` contains breaking changes, please see the [changelog](https://github.com/Shopify/active_shipping/blob/master/CHANGELOG.md). Shopify will not be actively contibuting to the 2.0 version of this gem and is looking for maintainers.
We have released `1.9` and will only backport small fixes to this version, on branch `1-9-stable`, and they should be on `master` first.

## Installation

Using bundler, add to the `Gemfile`:

```ruby
gem 'active_shipping'
```

Or stand alone:

```
$ gem install active_shipping
```


## Sample Usage

### Compare rates from different carriers

```ruby
require 'active_shipping'

# Package up a poster and a Wii for your nephew.
packages = [
  ActiveShipping::Package.new(100,               # 100 grams
                              [93,10],           # 93 cm long, 10 cm diameter
                              cylinder: true),   # cylinders have different volume calculations
<commit_msg>Clarify README regarding our involvement and 1.x releases (#535)<commit_after># ActiveShipping [![Build status](https://travis-ci.org/Shopify/active_shipping.svg?branch=master)](https://travis-ci.org/Shopify/active_shipping)

This library interfaces with the web services of various shipping carriers. The goal is to abstract the features that are most frequently used into a pleasant and consistent Ruby API:

- Finding shipping rates
- Registering shipments
- Tracking shipments
- Purchasing shipping labels

## Supported Shipping Carriers

* [UPS](http://www.ups.com)
* [USPS](http://www.usps.com)
* [USPS Returns](http://returns.usps.com)
* [FedEx](http://www.fedex.com)
* [Canada Post](http://www.canadapost.ca)
* [New Zealand Post](http://www.nzpost.co.nz)
* [Shipwire](http://www.shipwire.com)
* [Stamps](http://www.stamps.com)
* [Kunaki](http://www.kunaki.com)
* [Australia Post](http://auspost.com.au/)


## Versions
Note: `2.x` contains breaking changes, please see the [changelog](https://github.com/Shopify/active_shipping/blob/master/CHANGELOG.md). Shopify will not be actively contributing to the `2.x` version of this gem and is looking for maintainers.

[See our releases](https://github.com/Shopify/active_shipping/releases) for past versions.

## Installation

Using bundler, add to the `Gemfile`:

```ruby
gem 'active_shipping'
```

Or stand alone:

```
$ gem install active_shipping
```


## Sample Usage

### Compare rates from different carriers

```ruby
require 'active_shipping'

# Package up a poster and a Wii for your nephew.
packages = [
  ActiveShipping::Package.new(100,               # 100 grams
                              [93,10],           # 93 cm long, 10 cm diameter
                              cylinder: true),   # cylinders have different volume calculations

{'fraction_non_alphanumeric': 0.12858335652657946, 'fraction_numerical': 0.011411077094350125, 'mean_word_length': 3.7602649006622517, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 7, 'lorem ipsum': 0, 'www.': 16, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4749122', 'n_tokens_mistral': 1167, 'n_tokens_neox': 1086, 'n_words': 325}