diff options
author | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-03-17 05:04:34 -0400 |
---|---|---|
committer | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-03-27 16:31:58 +0200 |
commit | 98187d7567e333b4b0f8fbb199b39bb5eb096dda (patch) | |
tree | 6dc66616da3e775b7a2d52cb06a42ea465df3e12 /docs/architecture.md | |
parent | cbf54f9f938323c1695a19a8cb81f82342008e5b (diff) | |
download | libproxy-git-98187d7567e333b4b0f8fbb199b39bb5eb096dda.tar.gz |
Add architecture documentation (#85)
Fixes: https://github.com/janbrummer/libproxy2/issues/34
Co-authored-by: Jan-Michael Brummer <jan-michael.brummer1@volkswagen.de>
Diffstat (limited to 'docs/architecture.md')
-rw-r--r-- | docs/architecture.md | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..9da4938 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,33 @@ +Title: Architecture - Difference between library and D-Bus service +Slug: Architecture + + +# Architecture + +Starting with release 0.5.0 Libproxy is making use of glib. glib has many +advantages and helps to get rid of one of the major issues we have had with +previous versions of Libproxy. To name a few advantages: + +- Testing Framework +- Make use of existing plugin loader +- Automatic documentation out of code +- Gobject Introspection bindings for almost every programming language +- D-Bus Service + +Using D-Bus as a service on Linux we can elimnate the previous ABI clashes we +have had in the past. mozjs in different versions on one system could lead to +crashes in cases where the application using libproxy favours a different mozjs +version. + +## Building Libproxy as simple library + +On non D-Bus system you still have the option to build Libproxy as a self +contained library using `-Ddbus=disabled`. In this case you can still run into +an ABI issue, but with it's current plugins it is unlikely at the moment. + +## Building Libproxy as D-Bus Service +On D-Bus system Libproxy will be build using a D-Bus service and a simple +helper library. The main logic part (previous simple library) is done in the +D-Bus service and so can never crash an application. +The application itself will be linked with the helper library which does the +necessary D-Bus calls and wait's for answer. |