Difference between revisions of "Clients"

From BaseX Documentation
Jump to navigation Jump to search
Line 17: Line 17:
 
; Object oriented:
 
; Object oriented:
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/java Java], [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-api/tree/master/src/main/java Java], [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-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] (contributed by Sabu Francis)
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/rebol Rebol] (contributed by Sabu Francis)
; Imperative:
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c C]
 
 
; Functional:
 
; Functional:
 
: [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/lisp Lisp] (contributed by Andy Chambers)
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/haskell Haskell] (contributed by Leo Wörteler)  
 
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/haskell Haskell] (contributed by Leo Wörteler)  
 +
; Others:
 +
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/c C]
 +
: [https://github.com/apb2006/basex-node node.js] (contributed by Andy Bunce)
 +
: [https://github.com/BaseXdb/basex-api/tree/master/src/main/qt Qt] (contributed by Hendrik Strobelt)
 
   
 
   
 
Many of the interfaces contain the following files:
 
Many of the interfaces contain the following files:

Revision as of 18:51, 7 October 2011

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

Bindings for other languages are easy to write, and welcome! Please have a look at our Server Protocol for more information.

Currently, we offer bindings for the following programming languages:

Object oriented
Java, C#, VB, Scala
Scripting
PHP, Python, Perl, Ruby
Rebol (contributed by Sabu Francis)
Functional
Lisp (contributed by Andy Chambers)
Haskell (contributed by Leo Wörteler)
Others
C
node.js (contributed by Andy Bunce)
Qt (contributed by Hendrik Strobelt)

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.