Hello Marc,

I have no idea how Clojure works (but would be very interested, but time
is a scarce resource...), but according to
https://clojuredocs.org/clojure.core/import you should be able to simply
import Java classes/libraries. If this is possible it should be a simple
process: Put the BaseX.jar into the library path and import the
necessary classes (you can take a look at our Java examples in the wiki,
should work the same).

Well, if your pirgamm is not client/server oriented I would definitely
try to embed BaseX. The main benefit of the BaseX Client/Server version
is that you can access it with multiple processes at the same time. Of
course, the client version is theoretically slower (it has to send stuff
over sockets, It has to create/parse TCP packets and it might be a
significant overhead to use TCP if you have a rather small query or
result set. But this overhead could also be insignificant, if you don't
have this and your client/server have a fast connection (i.e. on the
same server or the same network).

Cheers
Dirk

On 01/18/2016 11:49 PM, Marc van Grootel wrote:
> Hi,
>
> I'm considering to write a web layer for BaseX based in Clojure. It
> may be a somewhat longer term project but I would like to bring XML
> and BaseX closer to Clojure programming. Clojure web apps usually are
> able to run under various servers/containers (Jetty/Netty etc.) and I
> would like to be able to use Clojure libraries to handle things like
> request routing, security and authentication outside of BaseX/XQuery.
>
> Some questions that I have while I'm orienting myself. Some of it
> touches on integration areas that are quite new to me so I am happy to
> get some general pointers that I can use to dig further.
>
> For Clojure I found only one BaseX client library [1] which wraps the
> standard Java TCP client and it seems to work fine.
>
> But I have some broader questions such as
>
> - Choosing between using the client or much more intimately embedding
> BaseX as a library. The latter is probably much more complex but I'm
> figuring this is the only way to get a good integration as the TCP
> client is rather limited in functionality. But where to start? What
> layers of the existing servlet integration to peel off, which ones to
> keep. Is BaseXServer.java a good starting point?
>
> - Is the TCP client generally slower than via the Java API? A couple
> of queries via clj-basex didn't impress me much qua speed (compared to
> same query via the GUI).
>
> Any starting points or general considerations that could help me prune
> the (re)search tree are very much appreciated.
>
>
> --Marc
>
> [1] https://github.com/kouphax/clj-basex

-- 
Dirk Kirsten, BaseX GmbH, http://basexgmbh.de
|-- Firmensitz: Blarerstrasse 56, 78462 Konstanz
|-- Registergericht Freiburg, HRB: 708285, Geschäftsführer:
|   Dr. Christian Grün, Dr. Alexander Holupirek, Michael Seiferle
`-- Phone: 0049 7531 91 68 276, Fax: 0049 7531 20 05 22

Reply via email to