# Libraries for the REST API

You can use the official Octokit libraries and other third-party libraries to extend and simplify how you use the GitHub API.

## About libraries

You can use libraries to extend and simplify the way your application interacts with GitHub'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 GitHub's API via a specific programming language.

GitHub maintains official Octokit libraries for some languages. There are also third-party libraries that you can use with GitHub's API, which are not maintained by GitHub.

## Official GitHub libraries

GitHub maintains these official client libraries for the GitHub API. These repositories are open source, and community contributions are welcome.

For more information, see [Scripting with the REST API and JavaScript](/en/enterprise-server@3.22/rest/guides/scripting-with-the-rest-api-and-javascript) and [Scripting with the REST API and Ruby](/en/enterprise-server@3.22/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 GitHub API in various programming languages.

These third-party libraries are not maintained by GitHub. 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)