"Tell Bill where to go today!"

Home/What's New

Technology Associates Homepage

Alien Technology?

[an error occurred while processing this directive]

Powered by Linux!
(of course)

SourceForge Logo Xbase
[ Status | Documentation | Downloads | CVS | Mailing Lists | Developer Info | License | Links | Credits | Contact ]


Welcome to the home of Xbase, the XBase compatible C++ class library formerly known as XDB, also formerly know as xBase :). Xbase (XDB) started out as merely a bugfix and enhancement of the xBase version 1.8.1 class library, but as of June 2000 Gary Kunkel (the original author of the xBase library), passed the "torch" on to us. At that time we decided to go ahead and continue using the XDB name, but now a large company (who shall remain unnamed) informed us that we can't use XDB for our library as they are using it for theirs. So we have now changed the name back to Xbase. Gary (the original author) still plans to be an active member of the development team (thank whichever god/God you deem necessary).

The original xBase website is still available here.

With the exception of these web pages, the project is being hosted by SourceForge at the XBase SourceForge Project Page.

What is it?

Xbase is a collection of specifications, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices

What we have here is not only a C++ class library compatible with older .dbf, .ndx and .ntx files, and various utilities, but a viable database development environment for future projects requiring a lightweight database engine.

We define XBase here to mean any dBase, Clipper, FoxPro, etc. compatible database (including index and memo files). Currently, XBase supports DBF (dBase and other) database files, NDX (dbase) and NTX (Clipper) index files, and DBT (dBase and other) memo field files. xBase (with a lowercase 'x') means the xBase library. We hope to add support for other XBase file formats in the future.

We intend to provide complete backwards compatibility with the original xBase library.

We welcome any bugfixes and/or enhancements. Please see the developer section (below) for more details.

Current Status

The current stable version of Xbase is 2.0.0. It is the first release combining the XDB fork with the original xbase CVS code.

Enhancements from XDB 1.2.0:

  • Many bugfixes
  • Renamed xbase :)
  • Several fixes to expression handling
  • New xbFilter class which is almost ready to go
  • Added xbase-config script which can be used to determine the correct cflags, libraries, etc. required to build programs with the library for use in make files and configure scripts.
Enhancements from xBase1.8.1:
  • Fixed locking code (and other portions of the library) so that it actually works in a multi-user environment.
  • Added "real" delete support so that deleted records are actually removed and their space reclaimed. Note, that this differs from the original xBase (i.e. dBase) handling where deleted records are not removed/reclaimed until the database is "packed". This is an optional feature which is disabled by default, to preserve compatibility.
  • Various performance enhancements, which shouldn't affect compatility (please report any problems).
  • Added support for variable length NDX node sizes (version 1.2.0). This is a performance enhancement that should only be used by new programs that do not need backwards compatibilty with other XBase applications.


Currently, the only (real) documentation available is the original xBase documentation (which is quite good) for version 1.8.1 here. This documentation is also included with the source.

Our changes should be completely backwards compatible with the original library. However, in the near future we will be providing new documentation, in the mean time this should work quite well.

Note: if you are upgrading from xdb 1.2.0 to xbase 2.0.0, you will need to replace all includes of the form "xdb/XXX.h" with "xbase/XXX.h" and link against -lxbase rather than -lxdb.

We are using the Doxygen program to document Xbase and a preliminary version of the Doxygen generated documenation is available here. Please let us know what you think.


Note: These files are also available from the XBase SourceForge Project Page.

CVS Access

Anonymous readonly access to CVS is available to everyone. Please see the XBase SourceForge Project Page for details.

If you would like CVS write access, please see the "Developer Info" section, below.

Mailing Lists

We currently have two mailing lists available:
For users of XBase. This is a forum for discussion of the use and programming of Xbase. It is monitored by the XBase developers, so user support questions should be directed to this list for help from XBase users as well as developers.

For developers of Xbase to discuss issues related to the development of Xbase (including bugs, new features, etc.). Please try to keep user issues on the xdb-users list. Users may want to subscribe to this list to keep abreast of what's happening with Xbase.

Mailing lists for the Xbase project are available from the XBase SourceForge Project Page.

Known Bugs and ToDo's

  • Finish new documentation (using Doxygen, still underway)
  • Make Win32 libraries available
  • Add make files and/or project files for VC++, BC++, CW (help!)
  • Add support for Perl, Python, Tcl/Tk, and Java
  • NTX indexes seem to have a problem with duplicate keys.
  • Exception/error handling does not yet correctly handle problems with locks (i.e. locks may still be in effect if a non-lock related problem occurs). This should happen rarely, in practice, but should be noted (and fixed).

Developer Info

We need developers! If you are interested please contact the project manager, Derry Bryson at, directly. If you would like CVS write access, you will need a SourceForge ID and SSH/SSL support setup (see the documentation at SourceForge).

If you don't want to become an "official" developer, patches and bug reports are also welcomed.

If you want to become an official developer, I would suggest obtaining and familiarizing yourself with the current version from CVS and monitoring and reviewing the archives from the developers mailing list.


XBase is released under the GNU LGPL license. This means, among other things, that it can be used to develop commercial applications as long as the appropriate considerations are made for the LGPL license.



  • The xbase development team: thanks for the tremendous work you put into the original development of this library.
  • SourceForge: this is such an incredible resource for open source projects like this one.


Please direct all questions, comments, bug reports, bug fixes, etc. to the appropriate mailing list.

All other correspondance (including problems with this web page) should be directed to Derry Bryson at

Copyright © 2000-2002 Derry Bryson. All Rights Reserved.