kexi project
Rapid Database Application Development
"Microsoft Access for Linux"

Home Download FAQ Support Features Handbook Screenshots Screencasts Compile Kexi Development Authors Contact License Sponsorship Translate This Site

wiki navigation:

Front Page
[info] [diff] [login]
[recent changes]
[most popular]
You can donate
to Kexi Project:
Via PayPal

Spread the word about Kexi!
Get Kexi Now!

Built on the KDE technology

Member of the Calligra Suite

No Software Patents!

Kexi Plugin System

Kexi is not only heavily based on libraries, it's also heavily componentized using it's Plugin System.

Table of Contents
     Plugin Types
     Plugin System Implementation


  • Plugin type - a group of plugins sharing the same API and designed for similar task. For example, database drivers share the same API and purpose - handling database connections and operations on database contents.
^ toc

Plugin Types

  • KexiDB plugins - (so-called drivers, implementations of KexiDB::Driver, KexiDB::Connection, KexiDB::Cursor interfaces) used to adding low-level database handlers, usually for reading/writing via well-specified SQL database interface but or also usable for reading from read-only data sources like, say, RSS feed
  • Kexi Dialogs - (implementions of KexiPart and KexiViewBase(external) interfaces) used for displaying specialized editors: Query Designer, Form Designer, Table Designer. Dialogs share the same behaviour regarding to view mode switching, objects renaming, removing and so on.
  • Kexi Table View Cell Editors - allows to displaying a non standard table cell content, e.g. graphics or even playing mp3 sound. It's planned to reuse this within forms as well.
  • Form Widgets - form editor's widgets are all retrieved from plugins, so called factories. It's similar to the technique known from Qt Designer, but allows better integration with KDE framework and is more user-friendly (eg. class names are translatable).
  • Property Editor's Items - usable for displaying non standard items in property editor (coming soon)
  • Import/Export Plugins - handle actions for data and/or schema importing/exporting to different formats (text, cvs, .xls, .ooc, .mdb) (work in progress)
^ toc


  • What are the advantages of making Kexi so plugin based?
Application is less monolythic so there can be more developers working concurently on different tasks without problems. It's no longer update entire application to change selected functionality, eg. add support for another database type.
^ toc

Plugin System Implementation

KDE dynamic modules API is used (see KLibFactory, KLibLoader documentation) for querying and loading needed code. Each plugin type is defined within KDE as a service.

Kexi - "MS Access for Linux" ... and Windows
© Kexi Team
This content is available under GFDL
Last edited: December 11, 2004 by js, visited 0 times.