From 1c45e4ac11360a623514fa7cf5a7200b4597bd2e Mon Sep 17 00:00:00 2001 From: David Rosa Date: Tue, 19 Nov 2019 09:21:24 -0800 Subject: [PATCH] docs: Add top level page for language bindings. Lists API client bindings/libraries/wrappers and makes a distinction between official core projects and community projects. Tweaked by tabbott to sort the community and outdated libraries, and restructure how we talk about other projects. Fixes #2093. --- templates/zerver/api/client-libraries.md | 59 +++++++++++++++++++ .../zerver/api/installation-instructions.md | 2 + templates/zerver/api/rest.md | 3 +- templates/zerver/api/sidebar_index.md | 1 + 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 templates/zerver/api/client-libraries.md diff --git a/templates/zerver/api/client-libraries.md b/templates/zerver/api/client-libraries.md new file mode 100644 index 0000000000..75efdbfcd9 --- /dev/null +++ b/templates/zerver/api/client-libraries.md @@ -0,0 +1,59 @@ +# Client libraries + +These API client libraries make it easy to work with Zulip's REST API +in your favorite language. + +## Official libraries + +These libraries are maintained by members of the Zulip core team. The +Python library is the most complete and best documented. + +* [Python](https://github.com/zulip/python-zulip-api) +* [JavaScript](https://github.com/zulip/zulip-js) + +## User maintained libraries + +The Zulip core team doesn't have the resources to maintain +high-quality libraries for every programming language. We've +collected a list of user-maintained libraries for popular languages: + +* [Clojure](https://github.com/thieman/clojure-zulip) +* [C#](https://github.com/zulip/zulip-csharp) +* [Go](https://github.com/ifo/gozulipbot) +* [Java](https://github.com/taliox/zulip-java-rest) +* [Kotlin](https://gitlab.com/ppiag/kzulip) +* [PHP](https://github.com/mrferos/zulip-php-client) +* [Ruby](https://github.com/raws/wonder-llama) +* [Swift](https://github.com/zulip/swift-zulip-api) + +### Contributing + +Contributing to improve language libraries is appreciated, as is +writing new ones. If you actively maintain a Zulip language binding +and would like it to be listed here (or would like to collaborate with +us in making it an official library), post in [this +topic][integrations-thread] on +[chat.zulip.org](https://chat.zulip.org) or submit a pull request +[updating this +page](https://zulip.readthedocs.io/en/latest/documentation/api.html). + +[integrations-thread]: https://chat.zulip.org/#narrow/stream/127-integrations/topic/API.20client.20libraries/ + +### Outdated + +!!! tip "" + The following projects are not actively maintained. Since + Zulip's core APIs have been stable for 5 years, even very + old libraries can be useful. + +* [Lua](https://github.com/deckycoss/zulua) +* [Erlang](https://github.com/femnad/tuplre) +* [PHP](https://github.com/federicoq/zulip-php) +* [Go](https://github.com/decached/go-zulip) +* [Haskell](https://github.com/yamadapc/hzulip) +* [Chicken Scheme](https://github.com/yamadapc/zulip-scheme) +* [Scala](https://github.com/cqfd/zulip-scala) +* [EventMachine](https://github.com/cqfd/zulip_machine) +* [Ruby](https://github.com/verg/zulip-rb) +* [Perl](https://github.com/Stantheman/WebService-Zulip) +* [.Net](https://github.com/Shayan-To/ZulipClientApi) diff --git a/templates/zerver/api/installation-instructions.md b/templates/zerver/api/installation-instructions.md index b61b120a38..a609ce2b0d 100644 --- a/templates/zerver/api/installation-instructions.md +++ b/templates/zerver/api/installation-instructions.md @@ -37,3 +37,5 @@ npm install zulip-js No download required! {end_tabs} + +See also the [unofficial client libraries](#client-libraries) for many languages. diff --git a/templates/zerver/api/rest.md b/templates/zerver/api/rest.md index 8d9e409be1..fa4fbc4628 100644 --- a/templates/zerver/api/rest.md +++ b/templates/zerver/api/rest.md @@ -8,7 +8,8 @@ you can do in Zulip, you can do with Zulip's REST API. To use this API: using the API to interact with your own account (e.g. exporting your personal message history). * Choose what language you'd like to use. You can download the - [Python or JavaScript bindings](/api/installation-instructions), or + [Python or JavaScript bindings](/api/installation-instructions), projects in + [other languages](/api/client-libraries), or just make HTTP requests with your favorite programming language. If you're making your own HTTP requests, you'll want to send the appropriate HTTP Basic Authentication headers; see each endpoint's diff --git a/templates/zerver/api/sidebar_index.md b/templates/zerver/api/sidebar_index.md index 46b954920d..8df285a8d4 100644 --- a/templates/zerver/api/sidebar_index.md +++ b/templates/zerver/api/sidebar_index.md @@ -19,5 +19,6 @@ * [API keys](/api/api-keys) * [Configuring the Python bindings](/api/configuring-python-bindings) * [Error handling](/api/rest-error-handling) +* [Client Libraries](/api/client-libraries) {!rest-endpoints.md!}