Main Page » Developer Section » Clients
Clients
This page 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
- Java: The default implementation
- C++: contributed by Karim Salama (based on SDL2_net)
- C++: contributed by Jean-Marc Mercier (based on libboost)
- C++: contributed by Ben Engbers (based on CMake)
- C#, contributed by the BaseX Team and Martín Ferrari
- C, contributed by the BaseX Team
- Golang: contributed by Christian Baune
- Erlang: contributed by Zachary Dean
- node.js: contributed by Andy Bunce
- Perl, contributed by the BaseX Team
- PHP: updated by James Ball
- Python: contributed by Hiroaki Itoh
- Python, using BaseX REST services: contributed by Luca Lianas
- R: contributed by Ben Engbers
- Raku: contributed by Wayland
- Rust
- Ruby, contributed by the BaseX Team
- V, contributed by Erik Peterson
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)
- ActionScript: contributed by Manfred Knobloch
- Haskell: contributed by Leo Wörteler
- Lisp: contributed by Andy Chambers
- node.js: contributed by Hans Hübner (deviating from client API)
- Qt: contributed by Hendrik Strobelt
- Rebol: contributed by Sabu Francis
- Scala: contributed by Manuel Bernhardt
- Scala (simple implementation)
- VB, contributed by the BaseX Team
Many of the implementations 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 iteratively.QueryBindExample
shows you how to bind a variable to your query and evaluates the query iteratively.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 10.0- Updated: The
replace
andstore
functions have been renamed toput
andputBinary
.
- Updated: cram-md5 replaced with digest authentication.
⚡Generated with XQuery