lucy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Kurz <>
Subject Re: [lucy-user] Using Lucy directly from C
Date Mon, 26 Nov 2012 20:15:46 GMT
Sounds like Lucy is not the right fit for you.

Besides CLucene, you might also check out Hyperestraier:

Depending on your needs, the full-text search in SQLite might work


On Sat, Nov 24, 2012 at 10:13 PM, Rayne Olivetti
<> wrote:
> The reason for me to seek a C/C++ alternative for Lucene very simple: performance (especially
memory) and dependencies (no Java on many embedded systems).
> This sounds like problem you need to solve anyway first, if you want people to write
bindings for other languages.
> Unless there is a complete C API, I personally would rather stick to swig bindings of
> And it behooves me to say that Lucy is trying to solve other problems (a toy-swig project
which you expect people to learn to use in order to wrap your one, single library) that it's
rather supposed to solve in the first place.
> Here's an excerpt from Lucy FAQ:
> Why don't you use Swig?
> A major design goal of Lucy is to present bindings which are as idiomatic as possible
so that our users feel as though they are programming in their native language and not in
C. Swig is a great tool, but it does not offer support for many of the features which make
Lucy so user friendly: subclassing, named parameters, default argument values, etc.
> These excuses downright wrong. Surely SWIG handles inheritance, default arguments, and
named parameters (docstring features for python) for languages that support them. If your
favorite, killer feature X is missing for your apparently-favorite-language Perl, why don't
you just send a patch to Swig instead of re-inventing the wheel? And I should and add Swig
is a BIG wheel.
> And mind you, not many languages support those features.
> And okay, I get that you love Perl, and you probably don't want to dig into the giant
called Swig just to implement a single feature you like. But please understand that Perl is
obsolete to many people today, and by not implementing a complete C API, you're not letting
people to use Swig (or whatever tool the language X supports for wrapping C code) at their
> Last but not least, "loose C port" implies it can be used via C, which led me to this
project. In it's current form, Lucy mainly looks like a Perl port of Lucene, boosted with
some C code.
> Lucy is a project at it's infancy, so I expect many things to change in the future.
> But for now, I'm going with clucene+swig.
> ----- Original Message -----
> From: Nathan Kurz <>
> To:; Rayne Olivetti <>
> Cc:
> Sent: Friday, November 23, 2012 2:33 AM
> Subject: Re: [lucy-user] Using Lucy directly from C
> On Thu, Nov 22, 2012 at 4:35 AM, Rayne Olivetti <> wrote:
>> I'm well aware of the purpose of Lucy, but is it not possible to use it directly
from C? I can't find any documents regarding this, and the INSTALL file says "Currently it
is available via Perl bindings.", which almost suggests "you're on your own if you're going
to use Lucy from C" (and this sounds quite awkward for a C library).
>> I'm also trying to write Go bindings (which is normally done via cgo, which allows
Go code to directly call C functions), and using cgo doesn't require any of the binding magics
that ships with Lucy --it works best with a plain, old C API.
> There is not yet a published C API.   There is a strong desire to have
> one, but it's yet to be a top priority.  It will probably stay that
> way until someone shows up on the mailing list with a clear need and
> the willingness and ability to help work on it. :)
> The difficulty is that host languages are integral to the way Lucy
> works, and some small but crucial pieces are implemented only in the
> host language.  There's been considerable interest in other languages,
> but right now Perl is the only one fully supported.
> Here's a little more background:
> --nate

View raw message