Difference between revisions of "Clients"

From BaseX Documentation
Jump to navigation Jump to search
Line 1: Line 1:
We provides clients in several programming languages. With the following light-weight bindings,
+
We provide clients in several programming languages. With the following light-weight bindings,
 
you will be able to connect to a running BaseX server instance, execute all database
 
you will be able to connect to a running BaseX server instance, execute all database
 
commands and perform queries.
 
commands and perform queries.
Line 6: Line 6:
 
* [[Query Mode]]: Description of the usage of the query mode.
 
* [[Query Mode]]: Description of the usage of the query mode.
  
Currently, we offer bindings for the following programming languages (bindings in other languages are welcome!):
+
Currently, we offer bindings for the following programming languages (bindings for other languages are welcome):
 
; Imperative:
 
; Imperative:
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c C]
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c C]
 
; Object oriented:
 
; Object oriented:
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c%23 C#], [https://github.com/BaseXdb/basex-api/tree/master/src/main/vb VB], [https://github.com/BaseXdb/basex-api/tree/master/src/main/java Java], [https://github.com/BaseXdb/basex-api/tree/master/src/main/scala Scala]
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c%23 C#], [https://github.com/BaseXdb/basex-api/tree/master/src/main/vb VB], [https://github.com/BaseXdb/basex-api/tree/master/src/main/java Java], [https://github.com/BaseXdb/basex-api/tree/master/src/main/scala Scala]
 +
; [https://github.com/BaseXdb/basex-api/tree/master/src/main/qt QT] (contributed by Hendrik Strobelt)
 
; Scripting
 
; Scripting
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/php PHP], [https://github.com/BaseXdb/basex-api/tree/master/src/main/python Python], [https://github.com/BaseXdb/basex-api/tree/master/src/main/perl Perl], [https://github.com/BaseXdb/basex-api/tree/master/src/main/ruby Ruby]
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/php PHP], [https://github.com/BaseXdb/basex-api/tree/master/src/main/python Python], [https://github.com/BaseXdb/basex-api/tree/master/src/main/perl Perl], [https://github.com/BaseXdb/basex-api/tree/master/src/main/ruby Ruby]
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/rebol Rebol] (thanks to Sabu Francis)
+
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/rebol Rebol] (contributed by Sabu Francis)
 
; Functional:
 
; Functional:
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/lisp Lisp] (thanks to Andy Chambers)
+
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/lisp Lisp] (contributed by Andy Chambers)
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/haskell Haskell] (thanks to Leo Wörteler)  
+
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/haskell Haskell] (contributed by Leo Wörteler)  
 
   
 
   
 
Most of the interfaces contain at least the following six files:
 
Most of the interfaces contain at least the following six files:
Line 30: Line 31:
 
   
 
   
 
Please check out [https://github.com/BaseXdb/basex-api/blob/master/src/main/readme.txt readme.txt]
 
Please check out [https://github.com/BaseXdb/basex-api/blob/master/src/main/readme.txt readme.txt]
for more background information on the client/server communication.
+
for more information on the client/server protocol.
  
 
[[Category:Developer]]
 
[[Category:Developer]]
 
[[Category:Server]]
 
[[Category:Server]]
 
[[Category:API]]
 
[[Category:API]]

Revision as of 09:31, 13 September 2011

We provide clients in several programming languages. With the following light-weight bindings, you will be able to connect to a running BaseX server instance, execute all database commands and perform queries.

  • Standard Mode: Description of the usage of the standard mode.
  • Query Mode: Description of the usage of the query mode.

Currently, we offer bindings for the following programming languages (bindings for other languages are welcome):

Imperative
C
Object oriented
C#, VB, Java, Scala
QT (contributed by Hendrik Strobelt)
Scripting
PHP, Python, Perl, Ruby
Rebol (contributed by Sabu Francis)
Functional
Lisp (contributed by Andy Chambers)
Haskell (contributed by Leo Wörteler)

Most of the interfaces contain at least the following six files:

  • BaseXClient contains the actual code for creating a session, sending and executing commands and receiving results. Furthermore there is an inner class called query which offers the evaluation of queries in an iterative manner.
  • 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.

The interfaces Java and C# also support Events:

  • EventExample demonstrates how to watch and unwatch events.

Please check out readme.txt for more information on the client/server protocol.