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