Difference between revisions of "Clients"
| Line 21: | Line 21: | ||
<tr> | <tr> | ||
<td width='50%' valign='top'>'''BaseX 7.x, BaseX 8.x and later''' | <td width='50%' valign='top'>'''BaseX 7.x, BaseX 8.x and later''' | ||
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/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/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/JohnLeM/BasexCPPAPI/ C++]: contributed by Jean-Marc Mercier (based on libboost) | ||
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [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/ | + | * [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/programaths/go-basex Golang]: contributed by Christian Baune | ||
| − | * [https://github.com/zadean/basexerl/blob/ | + | * [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/apb2006/basex-node node.js]: contributed by Andy Bunce | ||
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/perl Perl], contributed by the BaseX Team |
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/php PHP]: updated by James Ball |
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/python Python]: contributed by Hiroaki Itoh |
* [https://github.com/lucalianas/pyBaseX Python], using BaseX REST services: contributed by Luca Lianas | * [https://github.com/lucalianas/pyBaseX Python], using BaseX REST services: contributed by Luca Lianas | ||
* [https://github.com/BenEngbers/RBaseX R]: contributed by Ben Engbers | * [https://github.com/BenEngbers/RBaseX R]: contributed by Ben Engbers | ||
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/raku Raku]: contributed by Wayland |
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/ruby Ruby], contributed by the BaseX Team |
* [https://github.com/eptx/v-basex V], contributed by Erik Peterson | * [https://github.com/eptx/v-basex V], contributed by Erik Peterson | ||
| Line 49: | Line 49: | ||
* [https://github.com/delving/basex-scala-client Scala]: contributed by Manuel Bernhardt | * [https://github.com/delving/basex-scala-client Scala]: contributed by Manuel Bernhardt | ||
* [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/scala Scala] (simple implementation) | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/scala Scala] (simple implementation) | ||
| − | * [https://github.com/BaseXdb/basex/tree/ | + | * [https://github.com/BaseXdb/basex/tree/main/basex-api/src/main/vb VB], contributed by the BaseX Team |
</td> | </td> | ||
</tr> | </tr> | ||
Latest revision as of 16:29, 29 June 2023
The conventions for the client functions were revised:
- The
replaceandstorefunctions have been renamed toputandputBinary. - The
RETRIEVEcommand has been replaced byBINARY 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 from other programming languages.
You can use the following light-weight language bindings to connect to a running BaseX server instance, execute database commands and evaluate XQuery expressions.
Most clients provide two modes:
- Standard Mode: connecting to a server, sending commands
- Query Mode: defining queries, binding variables, iterative evaluation
Please see the Server Protocol for more information on the available commands. Currently, we offer bindings for the following programming languages:
BaseX 7.x, BaseX 8.x and later
With Version 8.0, authentication has changed. Some language bindings have not been updated yet. The update is rather trivial, though (see here for more details); patches are welcome. |
BaseX 7.x (outdated)
|
Many of the interfaces contain the following files:
BaseXClientcontains the code for creating a session, sending and executing commands and receiving results. An innerQueryclass facilitates the binding of external variables and iterative query evaluation.Exampledemonstrates how to send database commands.QueryExampleshows you how to evaluate queries in an iterative manner.QueryBindExampleshows you how to bind a variable to your query and evaluates the query in an iterative manner.CreateExampleshows how new databases can be created by using streams.AddExampleshows how documents can be added to a database by using streams.
Changelog[edit]
- Version 10.0
- Updated: The
replaceandstorefunctions have been renamed toputandputBinary.
- Version 8.0
- Updated: cram-md5 replaced with digest authentication.