1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
6 <meta name="author" content="Johannes Lehtinen"/>
7 <meta name="copyright" content="Copyright 2007 Johannes Lehtinen"/>
8 <meta name="keywords" content="C-Pluff,plug-in framework,plug-in,plugin framework,plugin,C,free software,open source"/>
9 <meta name="identifier" content="http://www.c-pluff.org/index.en.html"/>
10 <meta name="verify-v1" content="TJCP/6uZGEHJUCSPUk32yvXT6xwvnzC7INBhiIPsZ1A=" />
11 <title>C-Pluff, a plug-in framework for C</title>
12 <link rel="Stylesheet" type="text/css" href="cpluff_style.css"/>
17 <h1>C-Pluff, a plug-in framework for C</h1>
21 <li><a href="copyright.en.html">License</a></li>
22 <li><a href="reference/c-api/index.html">Documentation</a></li>
23 <li><a href="http://www.c-pluff.org/lists">Mailing lists</a></li>
24 <li><a href="http://www.c-pluff.org/download">Download</a></li>
25 <li><a href="http://www.c-pluff.org/repository">Repository</a></li>
28 <h2 id="overview">Overview</h2>
30 C-Pluff is a plug-in framework for C programs.
31 It has been strongly inspired by the Java plug-in framework in
32 <a href="http://www.eclipse.org/">Eclipse</a>. C-Pluff focuses on
33 providing core services for plug-in interaction and plug-in
34 management. It aims to be platform neutral and supports dynamic
35 changes to plug-in configuration without stopping the whole
36 application or framework. It does not yet provide special facilities
37 for distribution such as signed plug-in packages or remote plug-in
38 repositories but it is possible to build such features on top of the
42 The current C-Pluff implementation and documentation is very much
43 work in progress so it should be considered early alpha stage software.
44 I will be updating the documentation and source distribution on this
45 site as I proceed with documentation and implementation.
46 If you are interested in C-Pluff, take a look at
47 <a href="reference/c-api/index.html">reference documentation</a>,
48 join <a href="http://www.c-pluff.org/lists">mailing lists</a> or
49 <a href="http://www.c-pluff.org/download">download it</a>. You can also send
50 feedback, ideas and thoughts about such platform directly to the
51 <a href="mailto:johannes.lehtinen@iki.fi">author</a>.
54 <h2 id="structure">Architecture</h2>
56 The plug-in architecture supported by C-Pluff is presented in the
57 following figure. There is a thin main program controlling the plug-in
58 framework. The main program is responsible for initializing and setting
59 up the plug-in environment. Most of the application logic is contained in
60 plug-ins which are independent components and can be developed and
61 distributed separately. Plug-ins integrate with each other by providing
62 extension points and extensions. An extension point is a point into which
63 other plug-ins can attach extensions. An extension can be just
64 information, expressed in XML format, or the plug-in may also provide
65 program logic as part of the plug-in runtime library. The framework
66 provides services for accessing extensions and for managing plug-in
70 <img src="img/architecture.png" alt="Plug-in architecture" />
75 <li><a href="copyright.en.html">License</a></li>
76 <li><a href="reference/c-api/index.html">Documentation</a></li>
77 <li><a href="http://www.c-pluff.org/lists">Mailing lists</a></li>
78 <li><a href="http://www.c-pluff.org/download">Download</a></li>
79 <li><a href="http://www.c-pluff.org/repository">Repository</a></li>
83 Copyright 2007 <a href="http://www.jlehtinen.net/">Johannes Lehtinen</a><br/>
85 <a href="http://validator.w3.org/check?uri=referer">XHTML Basic 1.0</a>,
86 <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2</a>