Difference between revisions of "Clients"

From BaseX Documentation
Jump to navigation Jump to search
Line 2: Line 2:
 
with other programming languages.
 
with other programming languages.
  
With the following light-weight bindings in different languages, you will be able to connect
+
Please note that we have switched from cram-md5 to digest authentication in {{Mark|Version 8.0}}.
to a running BaseX server instance, execute database commands, perform queries or listen to events.
+
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 events.
 +
 
 
Most clients provide two modes:
 
Most clients provide two modes:
  
 
* [[Standard Mode]]: connecting to a server, sending commands
 
* [[Standard Mode]]: connecting to a server, sending commands
 
* [[Query Mode]]: defining queries, binding variables, iterative evaluation
 
* [[Query Mode]]: defining queries, binding variables, iterative evaluation
 
Please have a look at our [[Server Protocol]] for more information on the clients and the underlying protocol.<br/>
 
Bindings for other languages are easy to write; your contributions are more than welcome!
 
  
 
Currently, we offer bindings for the following programming languages:
 
Currently, we offer bindings for the following programming languages:

Revision as of 03:53, 5 December 2014

This page is part of the Developer Section. It describes how to communicate with BaseX with other programming languages.

Please note that we have switched from cram-md5 to digest authentication in Template:Mark. 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 events.

Most clients provide two modes:

  • Standard Mode: connecting to a server, sending commands
  • Query Mode: defining queries, binding variables, iterative evaluation

Currently, we offer bindings for the following programming languages:

Object oriented
Java: The default implementation
C#, VB, Scala
Scala: contributed by Manuel Bernhardt
ActionScript: contributed by Manfred Knobloch
Scripting
Perl
PHP: updated by James Ball
Python 3.x, 2.7.3: contributed by Hiroaki Itoh
Python < 2.7: improved by Arjen van Elteren
Rebol: contributed by Sabu Francis
Ruby
Functional
Haskell: contributed by Leo Wörteler
Lisp: contributed by Andy Chambers
Others
node.js: contributed by Andy Bunce
node.js: contributed by Hans Hübner (deviating from client API)
Golang: contributed by Christian Baune
Qt: contributed by Hendrik Strobelt
C

Many of the interfaces contain the following files:

  • BaseXClient contains the code for creating a session, sending and executing commands and receiving results. An inner Query 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.
  • EventExample demonstrates how to watch and unwatch Events.