marker General Information
marker Project Homepages
marker Developers
marker XML
marker Support

 Cashtil is a SourceForge project: (cashutil).


GPE-Cash : GnuCash for embedded devices.

Simple account records for GPE.

gpe-cash is a simple finances manager for the GPE Palmtop Environment, using the Query Object Framework (QOF) and a fork of the gnucash source code from cashutil. Provides double-entry accounting on handheld or embedded devices, without business objects.

This fork omits certain GnuCash objects and provides some (simpler) replacements for others. There is no support for stocks and shares, multiple currency transactions, scheduled transactions, multiple books per user or budgets. GnuCash commodities are replaced by the simpler Palm Currencies via libqofexpenses (part of gpe-expenses). Where GnuCash and Palm support the same currencies, the currencies are GnuCash compatible.

gpe-cash uses source code from the cashutil tree and makes it available as a shared library, in turn used by the gpe-cash Gtk+ frontend. When cashutil is finally released, it will use this library, amongst others derived from the original gnucash source code.

The main purpose of gpe-cash is to enable the break up of GnuCash into smaller specialist applications, based on the core financial objects in gpe-cash and the currency support in gpe-expenses, such as to enable the use of double-entry accounting on limited resource devices that cannot run gnucash itself. It is uncertain whether gnucash will support import or export support for applications based on libqofcashobjects but it is possible.


  1. gpe-expenses : Provides a simple currency table (derived from pilot-qof and in turn from the Palm "Expenses" applet).
    • libqofexpensesobjects0 : Shared library containing the QofExpense and QofCurrency objects used by gpe-expenses, allowing gpe-cash to incorporate expenses into double-entry accounts.
  2. gpe-cash : Provides an interface to double-entry accounting for the GPE Palmtop Environment.
    • libqofcashobjects0 : Shared library containing the basic accounting objects from cashutil: Account, Trans and Split.
  3. gpe-invoice : Potential application to provide an interface to combine gpe-cash with the GnuCash business objects.

gpe-cash status

gpe-cash is currently in development.

Browse subversion code

Important points about gpe-cash vs gnucash.

  1. gpe-cash is a fork, not a derivative or port. In certain places, gpe-cash has had to remove, modify or add code to the GnuCash objects to provide the required functionality. All changes to GnuCash objects are indicated with the custom doxygen tag: \fork and show up in the doc/html/forked.html page of the generated documentation.
  2. gpe-cash is a limited application. Certain components of GnuCash are not registered with the QOF library, some (simpler) replacement objects are provided instead. There is no support for stocks and shares, scheduled transactions or budgets in gpe-cash. GnuCash commodities are not used, instead the simpler Palm Currencies are used. Where GnuCash and Palm support the same currencies, the currencies are GnuCash compatible.
  3. Business objects are used in a separate application: gpe-invoice, built from and dependent on gpe-cash.
  4. gpe-cash does not support multiple books - each gpe-cash user has one SQLite database for all gpe-cash accounts and this book is opened by default each time gpe-cash is started. There is no support for opening a different book. Such support is more easily available via scripts in the datafreedom-perl package, typically after copying the gpe-cash SQLite database from the handheld to a desktop machine.
  5. Similarly with reports, gpe-cash does not include any report support. All reports should be generated on the desktop machine via packages like datafreedom-perl. This allows an infinite number of varying reports that can be modified for specific uses with relative ease.
  6. The API for using the GnuCash objects is severely restricted from the original GnuCash header files. The cashobjects.h header file only provides the QOF object interface - the only exported function is the specific implementation of qof_object_register for each object.


Copyright © 2005, 2006, 2007 Neil Williams

Bugs or problem reports to: QOF-devel mailing list.