{{Announce|The conventions for the client functions were revised:}}
* The {{Code|replace}} and {{Code|store}} functions have been renamed to {{Code|put}} and {{Code|putBinary}}.
* The {{Code|RETRIEVE}} command has been replaced by {{Command|BINARY GET}}.
* Existing client implementations are working without changes unless they haven’t been upgraded.
This page is part of the [[Developer Section]]. It describes how to communicate with BaseX
with from other programming languages. {{Mark|Please note that with Version 8.0}}, we have switched from cram-md5 to digest authentication.If a language binding does not work anymore, it will need to be slightly updated.Please have a look at our [[Server Protocol]] for more information on the exchanged bytes.Your contributions are welcome!
You can use the following light-weight language bindings to connect to a running BaseX server
instance, execute database commands, perform queries, or listen to eventsand evaluate XQuery expressions.
Please see the [[Server Protocol]] for more information on the available commands. Currently, we offer bindings for the following programming languages:
<table width='100%'>
<tr>
<tdwidth='50%' valign='top'>'''BaseX 7.x, BaseX 8.x and later'''* [https://github.com/BaseXdb/basex/tree/mastermain/basex-examples/src/main/java/org/basex/examples/api Java]: The default implementation* [https://github.com/bsella/BaseX_CppClient C++]: contributed by Karim Salama (based on SDL2_net)* [https://github.com/JohnLeM/BasexCPPAPI/ C++]: contributed by Jean-Marc Mercier(based on libboost)* [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/c%23 C#], contributed by the BaseX Team and Martín Ferrari* [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/c C], contributed by the BaseX Team* [https://github.com/programaths/go-basex Golang]: contributed by Christian Baune* [https://github.com/zadean/basexerl/blob/main/src/bxe_client.erl Erlang]: contributed by Zachary Dean
* [https://github.com/apb2006/basex-node node.js]: contributed by Andy Bunce
* [https://github.com/BaseXdb/basex/tree/mastermain/basex-api/src/main/perl Perl], contributed by the BaseX Team* [https://github.com/BaseXdb/basex/tree/mastermain/basex-api/src/main/php PHP]: updated by James Ball* [https://github.com/BaseXdb/basex/tree/mastermain/basex-api/src/main/python3 python Python 3]: contributed by Hiroaki Itoh* [https://github.xcom/lucalianas/pyBaseX Python], 2using BaseX REST services: contributed by Luca Lianas* [https://github.7com/BenEngbers/RBaseX R]: contributed by Ben Engbers* [https://github.3com/BaseXdb/basex/tree/main/basex-api/src/main/raku Raku]: contributed by Hiroaki ItohWayland* [https://github.com/BaseXdb/basex/tree/mastermain/basex-api/src/main/ruby Ruby], contributed by the BaseX Team* [https://github.com/eptx/v-basex V], contributed by Erik Peterson
With <b>Version 8.0</b>, authentication has changed.Some language bindings have not been updated yet.The update is rather trivial, though ([[Server_Protocol#Authentication|see here]] for more to come (your contributions details); patches are welcome!).