Difference between revisions of "Clients"

From BaseX Documentation
Jump to navigation Jump to search
(Fixed links to work with our new GitHub Project Layout)
Line 16: Line 16:
  
 
; 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/scala Scala], [https://github.com/BaseXdb/basex-examples/tree/master/src/main/java/org/basex/examples/api Java]
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/c%23 C#], [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/vb VB], [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/scala Scala], [https://github.com/BaseXdb/basex-examples/tree/master/src/main/java/org/basex/examples/api Java]
 
: [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-api/tree/master/src/main/as ActionScript]: contributed by Manfred Knobloch
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/as ActionScript]: contributed by Manfred Knobloch
 
; Scripting
 
; Scripting
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/perl Perl]
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/perl Perl]
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/php PHP] ([[PHP Example|example]]) updated by James Ball
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/php PHP] ([[PHP Example|example]]) updated by James Ball
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/python3 Python 3.x, 2.7.3]: contributed by Hiroaki Itoh
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/python3 Python 3.x, 2.7.3]: contributed by Hiroaki Itoh
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/python Python < 2.7]: improved by Arjen van Elteren
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/python Python < 2.7]: improved by Arjen van Elteren
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/rebol Rebol]: contributed by Sabu Francis
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/rebol Rebol]: contributed by Sabu Francis
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/ruby Ruby]
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/ruby Ruby]
 
; Functional:
 
; Functional:
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/haskell Haskell]: contributed by Leo Wörteler
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/haskell Haskell]: contributed by Leo Wörteler
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/lisp Lisp]: contributed by Andy Chambers
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/lisp Lisp]: contributed by Andy Chambers
 
; Others:
 
; Others:
 
: [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/hanshuebner/simple-basex node.js]: contributed by Hans Hübner (deviating from client API)
 
: [https://github.com/hanshuebner/simple-basex node.js]: contributed by Hans Hübner (deviating from client API)
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/qt Qt]: contributed by Hendrik Strobelt
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/qt Qt]: contributed by Hendrik Strobelt
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c C]
+
: [https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/c C]
 
   
 
   
 
Many of the interfaces contain the following files:
 
Many of the interfaces contain the following files:

Revision as of 15:37, 20 March 2014

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

With the following light-weight bindings in different programming languages, you will be able to connect to a running BaseX server instance, execute database commands, perform queries or listen to events. Most clients offer the following two classes:

  • Standard Mode: connecting to a server, sending commands
  • 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.
Bindings for other languages are easy to write; your contributions are welcome.

Currently, we offer bindings for the following programming languages:

Object oriented
C#, VB, Scala, Java
Scala: contributed by Manuel Bernhardt
ActionScript: contributed by Manfred Knobloch
Scripting
Perl
PHP (example) 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)
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.