summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-03-17 05:04:34 -0400
committerJan-Michael Brummer <jan.brummer@tabos.org>2023-03-27 16:31:58 +0200
commit98187d7567e333b4b0f8fbb199b39bb5eb096dda (patch)
tree6dc66616da3e775b7a2d52cb06a42ea465df3e12
parentcbf54f9f938323c1695a19a8cb81f82342008e5b (diff)
downloadlibproxy-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>
-rw-r--r--docs/architecture.md33
-rw-r--r--docs/meson.build1
-rw-r--r--docs/px.toml.in3
-rw-r--r--subprojects/gi-docgen.wrap10
4 files changed, 46 insertions, 1 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.
diff --git a/docs/meson.build b/docs/meson.build
index 09263c5..3aac92a 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -1,6 +1,7 @@
if get_option('docs')
expand_content_md_files = [
+ 'architecture.md',
'configuration-logic.md',
'perl.md',
'python.md',
diff --git a/docs/px.toml.in b/docs/px.toml.in
index 740419b..79ed69b 100644
--- a/docs/px.toml.in
+++ b/docs/px.toml.in
@@ -61,6 +61,7 @@ file_format = "{filename}#L{line}"
[extra]
content_files = [
+ "architecture.md",
"configuration-logic.md",
"perl.md",
"python.md",
@@ -70,4 +71,4 @@ content_files = [
content_images = [
"libproxy.svg"
-] \ No newline at end of file
+]
diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap
new file mode 100644
index 0000000..d4796d4
--- /dev/null
+++ b/subprojects/gi-docgen.wrap
@@ -0,0 +1,10 @@
+[wrap-git]
+directory = gi-docgen
+url = https://gitlab.gnome.org/GNOME/gi-docgen.git
+push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gi-docgen.git
+revision = main
+depth = 1
+
+[provide]
+program_names = gi-docgen
+