couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Leitner <>
Subject Re: CouchDB and XULJet for development of desktop applications
Date Fri, 10 Dec 2010 20:30:36 GMT
Hi Pavel,

If I understood all your explanations correctly so far, XULRunner
could actually be the "silver bullet" I was looking for. I think that
something has struck me like a lightning after reading your
explanations a few times: Why do a web interface at all?? As you write
right in the first line:

> XULRunner cannot serve web pages. It can only display them.

Well, so I just connect to any CouchDB that has my data via XULRunner
- in essence, it is already almost a browser, anyways, as its part of
the Firefox UI - so I could build a CouchDB "browser" that connects to
CouchDB and serves the content I put there, including the views, and
even administer it from the XULRunner/Jet app. On the other hand,
because of XULRunner, I am no longer confined to the Same Origin
Policy. So, to explain a bit more what I want to do, let me know if
that would work out:

The user gets an app that is build on XULRunner and XULJet and can
connect to a CouchDB instance. This XUL-app then can display data that
CouchDB holds, much as I was thinking of already; You could even admin
the CouchDB from inside that XULRunner/Jet app. But then, the user can
also browse to any webpage **inside** XULRunner, "grab" that page, and
put it into his CouchDB. This could be either real visual browsing and
scraping the web page, or by sending a request from inside XULRunner
to some URL that, for example, returns JSON or XML REST data, and then
that data gets dumped into CouchDB and he can work with it, all from
inside XULRunner/Jet. As it is cross-platform, this approach will work
on most platforms, too (and I'm happy if I'm good enough to get the
big three with one interface, anyways, for now).

So, I assume this is possible with XULJet based on XULRunner, correct?
Thanks again for your patience with me and your verrry informative


On 10 December 2010 19:35, Pavel Krivanek <> wrote:
> Hi Florian,
> No, XULRunner cannot serve web pages. It can only display them. If
> your web interface uses mainly and almost solely Ajax then you can
> create a very simple XULRunner application with HTML instead of XUL
> that will send an initial XMLHttpRequest (GET) to the server, replace
> the current document with the resultant data and then you will
> continue with Ajax-only communication.
> So you will have one web server and two kinds of clients - one that
> will access the server (with LivelyCouch) from normal web browser and
> that will have access to the data only from server database. The
> second kind of clients will have to use special browser (your simple
> XULRunner application). It will show content provided by the same
> server with LivelyCouch however it will have wider privileges so it
> will be able to communicate with local CouchDB too, access to local
> files, processes etc.
> -- Pavel
> On Fri, Dec 10, 2010 at 5:03 PM, Florian Leitner
> <> wrote:
>> Hi Pavel,
>> Thanks for your detailed responses. As you will have seen, I've
>> replied to your comments in another thread, too. Specifically to what
>> you wrote here:
>> Yes, XULjet seems to very much solve the client side issues and
>> creates a nice platform-independent interface for desktop apps.
>> However, as I already wrote in another thread you replied to, too, it
>> seems I will have to create _two_ interfaces: one web interface for
>> the servers (using some web server wrapper for CouchDB, such as
>> LivelyCouch), and one desktop interface for the clients (using
>> XULjet). However, I could be completely wrong about this and maybe
>> XULjet could also be used to serve web pages, so I can use XULjet for
>> both interfaces? If that were the case, XULjet would actually be the
>> perfect solution I am looking for, because I do not need to maintain
>> two interfaces. So, is that possible with XULjet?
>> Regards,
>> Florian
>> On 10 December 2010 09:56, Pavel Krivanek <> wrote:
>>> Hi,
>>>> Hi Pavel,
>>>> I just read your post after my own, entitled "CouchDB/App, XHR, and
>>>> the JavaScript Same Origin Policy". This sounds pretty interesting,
>>>> especially your qoute about the Ajax issue and working around the Same
>>>> Origin Policy. So, if this is a good tool to build desktop-based
>>>> CouchDB apps, how platform-independent is it?
>>> It is possible to run on every platform where Firefox works, so MacOS,
>>> Windows and Linux are OK. Other processors should be ok too, if you
>>> look at XULRunner Debian builds, it is supported by alpha amd64 arm
>>> armel hppa i386 ia64 mips mipsel powerpc s390 sparc. I suppose that
>>> other systems like BSD should work too. On the other hand, most of the
>>> mobile platform are currently out of the game.
>>>> Can I easily build tools
>>>> that work equally well on OSX, Windows, and Linux without any "special
>>>> case" checking, much like in a platform independent language?
>>> XULRunner have some displaying issues, for example it doesn't show
>>> lines in groupboxes on Linux. If some hacks will be necessary I expect
>>> it will be solved inside the XULJet framework.
>>>> Does it
>>>> support any other platforms beyond those "big three"?
>>> See above
>>>> And, last, you
>>>> write you can easily embed SVG and HTML - what about PDF files, can
>>>> you view/display those through some plugin, maybe like the typical
>>>> browser plugins?
>>> I have no personal experience with it however it seem that it is possible:
>>> -- Pavel
>>>> Thanks,
>>>> Florian
>>> On 8 December 2010 22:58, Pavel Krivanek <> wrote:
>>>> Hi all,
>>>> I think you should pay attention XULJet framework [1]. This framework
>>>> tries to facilitate the development of JavaScript applications on the
>>>> Mozilla XULRunner runtime and it is maybe the most natural way how to
>>>> develop desktop applications supported by CouchDB.
>>>> Ajax requests have no limited destinations in XULRunner and with other
>>>> privileges (access to local files, execution of local processes...) it
>>>> provides an easy-to-use platform for desktop applications with native
>>>> look&feel.
>>>> Because the applications are written in JavaScript it is really very
>>>> easy to work with CouchDB.
>>>> XULJet has this main features:
>>>> - component-based structure that increases reuseability of the code
>>>> - readable description of GUI directly in JavaScript, no need of
>>>> external XML files
>>>> - powered by Google Closure Library that provides good modular system
>>>> and additional tools
>>>> - easy access to XUL elements using bindings to component properties
>>>> - simple embedding of HTML and SVG
>>>> - forms (they have no direct support in XUL)
>>>> - simple generation of printed reports
>>>> The archive with version 2.0.1 includes CouchDB library from Futon
>>>> with small modifications for the Closure Library.
>>>> [1]
>>>> Cheers,
>>>> -- Pavel Krivanek

View raw message