--- 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) ## 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: [hub4j/github-api](https://hub4j.github.io/github-api/) * 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)](https://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) ### Scala * Github4s: [47deg/github4s](https://github.com/47deg/github4s) ### Shell * ok.sh: [whiteinge/ok.sh](https://github.com/whiteinge/ok.sh)