summaryrefslogtreecommitdiff
path: root/content/cockpit/dbus-powerful-ipc.md
blob: 17e428530f5f821f4cff39d3792fc0fa6829c30f (plain)
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
Title: DBus is powerful IPC
Date: 2014-11-04
Category: Linux
Tags: dbus, linux
Slug: d-bus-is-powerful-ipc

D-Bus is powerful IPC Cockpit is heavily built around DBus. We send DBus over our
[WebSocket transport](https://github.com/cockpit-project/cockpit/blob/master/doc/protocol.md),
and marshal them in JSON.

DBus is powerful, with lots of capabilities. Not all projects use all of these, but so many of
these capabilities are what allow Cockpit to implement its UI.

 * Method Call Transactions
 * Object Oriented
 * Efficient Signalling
 * Properties and notifications
 * Race free watching of entire Object trees for changes
 * Broadcasting
 * Discovery
 * Introspection
 * Policy
 * Activation
 * Synchronization
 * Type-safe Marshalling
 * Caller Credentials
 * Security
 * Debug Monitoring
 * File Descriptor Passing
 * Language agnostic
 * Network transparency
 * No trust required
 * High-level error concept
 * Adhoc type definitions

Lennart goes into these further [in a kdbus talk](http://youtu.be/HPbQzm_iz_k?t=2m6s), as well as some of the weaknesses of DBus.