Difference between revisions of "Clients"
Line 17: | Line 17: | ||
Currently, we offer bindings for the following programming languages: | Currently, we offer bindings for the following programming languages: | ||
+ | <table width='100%'> | ||
+ | <tr> | ||
+ | <td>'''BaseX 8.0 and later''' | ||
; Object oriented: | ; Object oriented: | ||
: [https://github.com/BaseXdb/basex/tree/master/basex-examples/src/main/java/org/basex/examples/api Java]: The default implementation | : [https://github.com/BaseXdb/basex/tree/master/basex-examples/src/main/java/org/basex/examples/api Java]: The default implementation | ||
− | : [https://github.com/BaseXdb/basex/tree/ | + | |
+ | ...more to come (your contributions are welcome!) | ||
+ | </td> | ||
+ | <td>'''BaseX 7.x''' (obsolete) | ||
+ | ; Object oriented: | ||
+ | : [https://github.com/BaseXdb/basex/tree/7.9/basex-examples/src/main/java/org/basex/examples/api Java]: The default implementation | ||
+ | : [https://github.com/BaseXdb/basex/tree/7.9/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/7.9/basex-api/src/main/scala Scala] | ||
: [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/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/as ActionScript]: contributed by Manfred Knobloch |
; Scripting | ; Scripting | ||
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/perl Perl] |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/php PHP]: updated by James Ball |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/python3 Python 3.x, 2.7.3]: contributed by Hiroaki Itoh |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/python Python < 2.7]: improved by Arjen van Elteren |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/rebol Rebol]: contributed by Sabu Francis |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/ruby Ruby] |
; Functional: | ; Functional: | ||
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/haskell Haskell]: contributed by Leo Wörteler |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/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/programaths/go-basex Golang]: contributed by Christian Baune | : [https://github.com/programaths/go-basex Golang]: contributed by Christian Baune | ||
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/qt Qt]: contributed by Hendrik Strobelt |
− | : [https://github.com/BaseXdb/basex/tree/ | + | : [https://github.com/BaseXdb/basex/tree/7.9/basex-api/src/main/c C] |
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
Many of the interfaces contain the following files: | Many of the interfaces contain the following files: |
Revision as of 09:54, 6 January 2015
This page is part of the Developer Section. It describes how to communicate with BaseX with other programming languages.
Template:Mark, we have switched from cram-md5 to digest authentication. 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:
BaseX 8.0 and later
...more to come (your contributions are welcome!) |
BaseX 7.x (obsolete)
|
Many of the interfaces 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 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.
Changelog
- Version 8.0
- Updated: cram-md5 replaced with digest authentication