1
0
mirror of synced 2025-12-20 10:28:40 -05:00
Files
docs/content/rest/using-the-rest-api/libraries-for-the-rest-api.md

125 lines
5.1 KiB
Markdown

---
title: Libraries for the REST API
shortTitle: Libraries
intro: 'You can use the official Octokit libraries and other third-party libraries to extend and simplify how you use the {% data variables.product.company_short %} API.'
redirect_from:
- /libraries
- /v3/libraries
- /rest/overview/libraries
- /rest/overview/libraries-for-the-rest-api
versions:
fpt: '*'
ghes: '*'
ghec: '*'
topics:
- API
---
## About libraries
You can use libraries to extend and simplify the way your application interacts with {% data variables.product.company_short %}'s API. Each library provides pre-built code for a specific programming language. After integrating a library into your project, you can use the pre-built code modules to interact with {% data variables.product.company_short %}'s API via a specific programming language.
{% data variables.product.company_short %} maintains official Octokit libraries for some languages. There are also third-party libraries that you can use with {% data variables.product.company_short %}'s API, which are not maintained by {% data variables.product.company_short %}.
## Official {% data variables.product.company_short %} libraries
{% data variables.product.company_short %} maintains these official client libraries for the {% data variables.product.company_short %} API. These repositories are open source, and community contributions are welcome.
For more information, see [AUTOTITLE](/rest/guides/scripting-with-the-rest-api-and-javascript) and [AUTOTITLE](/rest/guides/scripting-with-the-rest-api-and-ruby).
* JavaScript: [octokit.js](https://github.com/octokit/octokit.js)
* Ruby: [octokit.rb](https://github.com/octokit/octokit.rb)
* .NET: [octokit.net](https://github.com/octokit/octokit.net)
* Terraform: [terraform-provider-github](https://github.com/integrations/terraform-provider-github)
<!-- markdownlint-disable GHD034 -->
## Third-party libraries
The following are examples of third-party libraries that you can use to interact with the {% data variables.product.company_short %} API in various programming languages.
These third-party libraries are not maintained by {% data variables.product.company_short %}. Libraries provided by third parties are governed by separate terms of service, privacy policy, and support documentation.
### Clojure
* Tentacles: [clj-commons/tentacles](https://github.com/clj-commons/tentacles)
### Dart
* github.dart: [SpinlockLabs/github.dart](https://github.com/SpinlockLabs/github.dart)
### Emacs Lisp
* gh.el: [sigma/gh.el](https://github.com/sigma/gh.el)
### Go
* go-github: [google/go-github](https://github.com/google/go-github)
### Haskell
* haskell-github: [haskell-github/github](https://github.com/fpco/github)
### Java
* GitHub API for Java, an object oriented representation of the GitHub API: [org.kohsuke.github (From github-api)](http://github-api.kohsuke.org/)
* JCabi GitHub API, based on Java7 JSON API (JSR-353), simplifies tests with a runtime GitHub stub, and covers the entire API: [github.jcabi.com (Personal Website)](http://github.jcabi.com)
### JavaScript
* NodeJS GitHub library: [pksunkara/octonode](https://github.com/pksunkara/octonode)
* Github.js wrapper around the GitHub API: [github-tools/github](https://github.com/github-tools/github)
* Promise-Based CoffeeScript library for the Browser or NodeJS: [philschatz/github-client](https://github.com/philschatz/github-client)
### Julia
* GitHub.jl: [JuliaWeb/GitHub.jl](https://github.com/JuliaWeb/GitHub.jl)
### OCaml
* ocaml-github: [mirage/ocaml-github](https://github.com/mirage/ocaml-github)
### Perl
* Pithub: [plu/Pithub](https://github.com/plu/Pithub)
* Net::GitHub: [fayland/perl-net-github](https://github.com/fayland/perl-net-github)
### PHP
* PHP GitHub API: [KnpLabs/php-github-api](https://github.com/KnpLabs/php-github-api)
* GitHub Joomla! Package: [joomla-framework/github-api](https://github.com/joomla-framework/github-api)
* GitHub bridge for Laravel: [GrahamCampbell/Laravel-GitHub](https://github.com/GrahamCampbell/Laravel-GitHub)
### PowerShell
* PowerShellForGitHub: [microsoft/PowerShellForGitHub](https://github.com/microsoft/PowerShellForGitHub)
### Python
* gidgethub: [gidgethub/gidgethub](https://github.com/gidgethub/gidgethub)
* ghapi: [fastai/ghapi](https://github.com/fastai/ghapi)
* PyGithub: [PyGithub/PyGithub](https://github.com/PyGithub/PyGithub)
* libsaas: [duckboard/libsaas](https://github.com/ducksboard/libsaas)
* github3.py: [sigmavirus24/github3.py](https://github.com/sigmavirus24/github3.py)
* agithub: [mozilla/agithub](https://github.com/mozilla/agithub)
* github-flask: [github-flask (Official Website)](http://github-flask.readthedocs.org)
* githubkit: [yanyongyu/githubkit](https://github.com/yanyongyu/githubkit)
* octokit.py: [khornberg/octokit.py](https://github.com/khornberg/octokit.py)
### Ruby
* GitHub API Gem: [piotrmurach/github](https://github.com/piotrmurach/github)
### Rust
* Octocrab: [XAMPPRocky/octocrab](https://github.com/XAMPPRocky/octocrab)
* Octocat: [octocat-rs/octocat-rs](https://github.com/octocat-rs/octocat-rs)
### Scala
* Github4s: [47deg/github4s](https://github.com/47deg/github4s)
### Shell
* ok.sh: [whiteinge/ok.sh](https://github.com/whiteinge/ok.sh)