Thread: Embedding Postgres "inside" an application

Embedding Postgres "inside" an application

From
Joe Lester
Date:
Does anyone know if there's a way to embed the Postgres database inside
an application... so that it runs transparently, without the user even
having to know it's there? I would prefer to use Postgres, but I fear
that I may have to resort to mySQL or some other SQL database that can
be embedded.

I'm building a Cocoa app on OS X and am familiar with the libpq C
library. Thanks!



Re: Embedding Postgres "inside" an application

From
Doug McNaught
Date:
Joe Lester <joe_lester@sweetwater.com> writes:

> Does anyone know if there's a way to embed the Postgres database
> inside an application... so that it runs transparently, without the
> user even having to know it's there? I would prefer to use Postgres,
> but I fear that I may have to resort to mySQL or some other SQL
> database that can be embedded.

You can't prevent the server from running as a separate process
(without hugely major surgery) but you can certainly embed the server
in your app bundle and run it "behind the scenes".  Picking a place
for the data files, etc might be a little tricky, but it should all be
doable.

AFAIK, MySQL also has to run as a server--I don't think you can link
to it as a library and access its databases from a single process.

-Doug

Re: Embedding Postgres "inside" an application

From
Harald Fuchs
Date:
In article <m3u182mt25.fsf@varsoon.wireboard.com>,
Doug McNaught <doug@mcnaught.org> writes:

> Joe Lester <joe_lester@sweetwater.com> writes:
>> Does anyone know if there's a way to embed the Postgres database
>> inside an application... so that it runs transparently, without the
>> user even having to know it's there? I would prefer to use Postgres,
>> but I fear that I may have to resort to mySQL or some other SQL
>> database that can be embedded.

> You can't prevent the server from running as a separate process
> (without hugely major surgery) but you can certainly embed the server
> in your app bundle and run it "behind the scenes".  Picking a place
> for the data files, etc might be a little tricky, but it should all be
> doable.

> AFAIK, MySQL also has to run as a server--I don't think you can link
> to it as a library and access its databases from a single process.

Wrong.  MySQL comes in two flavors, as a standalone server and as an
embedded library.