Composer is a tool for managing dependencies in PHP. Drupal 8 is based on Symfony and other open source projects. When you download Drupal for the first time, the files for those other projects are not present. They are referenced in the composer.json file and will be downloaded when you run composer install from the project root. In addition to declaring dependencies on Symfony components, you can also use Composer to download Drupal modules. This is similar to what you could have done with a drush.make file, but it automatically handles nested dependencies. For example, if you use Composer to install the Page Manager module, it will ensure that CTools is downloaded without having to explicitly declare it.
To add the Guzzle OAuth Subscriber module to your project, you can add "guzzlehttp/oauth-subscriber": "^0.3.0" to the required section of your composer.json file and then run the Composer update. You can also run Composer require guzzlehttp/oauth-subscriber. Composer will download the module, as well recursively downloading any dependencies that it may have.
In order to have Composer manage Drupal modules and themes, you need to add the following code to your composer.json file:
"repositories": { "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" } }
This allows you to add items from modules, themes and libraries to your composer.json file or install them by running Composer require.