Difference between revisions of "Clients"
Jump to navigation
Jump to search
(35 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This page is part of the [[Developer Section]]. It describes how to communicate with BaseX | 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: | Most clients provide two modes: | ||
Line 9: | Line 10: | ||
* [[Query Mode]]: defining queries, binding variables, iterative evaluation | * [[Query Mode]]: defining queries, binding variables, iterative evaluation | ||
− | Please | + | 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> | ||
+ | <td width='50%'>'''BaseX 7.x, BaseX 8.x and later''' | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/basex-examples/src/main/java/org/basex/examples/api Java]: The default implementation | ||
+ | * [https://github.com/JohnLeM/BasexCPPAPI/ C++]: contributed by Jean-Marc Mercier | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/c%23 C#], contributed by the BaseX Team and Martín Ferrari | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/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/master/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/master/basex-api/src/main/perl Perl], contributed by the BaseX Team | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/php PHP]: updated by James Ball | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/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/BaseXdb/basex/tree/master/basex-api/src/main/r R]: contributed by Ben Engbers | ||
+ | * [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/ruby Ruby], contributed by the BaseX Team | ||
− | + | With <b>Version 8.0</b>, authentication has changed. Some of the language | |
− | + | bindings have not been updated yet. The update is rather trivial, though | |
− | + | ([[Server_Protocol#Authentication|see here]] for more details); | |
− | + | we are looking forward to your patches! | |
− | + | </td> | |
− | + | <td width='50%'>'''BaseX 7.x''' (outdated) | |
− | + | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/as ActionScript]: contributed by Manfred Knobloch | |
− | + | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/haskell Haskell]: contributed by Leo Wörteler | |
− | + | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/lisp Lisp]: contributed by Andy Chambers | |
− | + | * [https://github.com/hanshuebner/simple-basex node.js]: contributed by Hans Hübner (deviating from client API) | |
− | + | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/qt Qt]: contributed by Hendrik Strobelt | |
− | + | * [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/rebol Rebol]: contributed by Sabu Francis | |
− | + | * [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/master/basex-api/src/main/vb VB], contributed by the BaseX Team | |
− | + | </td> | |
− | + | </tr> | |
− | + | </table> | |
− | |||
− | |||
− | |||
Many of the interfaces contain the following files: | Many of the interfaces contain the following files: | ||
Line 43: | Line 55: | ||
* <code>CreateExample</code> shows how new databases can be created by using streams. | * <code>CreateExample</code> shows how new databases can be created by using streams. | ||
* <code>AddExample</code> shows how documents can be added to a database by using streams. | * <code>AddExample</code> shows how documents can be added to a database by using streams. | ||
− | |||
− | + | =Changelog= | |
− | + | ||
− | + | ;Version 8.0 | |
+ | |||
+ | * Updated: cram-md5 replaced with digest authentication |
Revision as of 18:20, 18 April 2018
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 of the language bindings have not been updated yet. The update is rather trivial, though (see here for more details); we are looking forward to your patches! |
BaseX 7.x (outdated)
|
Many of the interfaces contain the following files:
BaseXClient
contains the code for creating a session, sending and executing commands and receiving results. An innerQuery
class facilitates the binding of external variables and iterative query evaluation.Example
demonstrates how to send database commands.QueryExample
shows you how to evaluate queries in an iterative manner.QueryBindExample
shows you how to bind a variable to your query and evaluates the query in an iterative manner.CreateExample
shows how new databases can be created by using streams.AddExample
shows how documents can be added to a database by using streams.
Changelog
- Version 8.0
- Updated: cram-md5 replaced with digest authentication