►
Description
In this talk, I will present zbus, a D-Bus crate written from scratch. D-Bus is an inter-process communication mechanism, available and used on almost all modern Linux desktops and many embedded systems. I will start with why I felt the need to take this huge undertaking on my shoulders, followed by the design goals, the challenges faced and how I overcame them during the development.
https://barcelona.rustfest.eu/sessions/zbus-yet-another-d-bus-library
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Yes,,
that's
it
from
me..
If
you
have
any
questions.,
no
questions?
everything
was
clear?
yes,.
There
is
a
question..
Do
you
get
a
mic?,
it's
better.
tech
team,.
Please
enable
microphone.
2.,
zeeshan:
yes,.
When
I
said
receiving
messages,,
that's
the
server
side,
yes.,
that's
coming.!
I
need
it
myself
for
geoclue.,
that's
the
main
use
for
me,,
so
it
will
definitely
be
there..
Someone
else?
it's
working,,
so
I
have
a
magic
hand..
So
you
were
saying
that
performance
shouldn't
be
an
issue,,
but
did
you
compare
it
to
native
implementation
in
gnome
or
other
implementations??
A
How
does
it
fare?
zeeshan:?
I
haven't
done
any
actual
comparisons,
but
I
could
see
that
I'm
not
allocating
anything
or
copying
anything,,
so
yes,,
I
made
sure
of
that,.
So
that's
the
way.
I
know
it's
as
efficient
as
it
would
be,,
but
no,
I
haven't
done
any
real
comparisons..
Once
I'm
ready,
once
it's
done,,
then
I
can
look
at
that.
any
more
questions?
no?
one
more..
Could
you
explain
alignment?
zeeshan:
[laughing],
so
some
cpus
require
you
to
start
your
messages
and
to
be
able
to
read
specific
data
types
from
on
a
particular
boundary,.
A
So
the
memory
address
has
to
start
with
some
multiple
or
it
has
to
be
a
multiple
of
8
bytes,,
something
like
that.,
that's
as
far
as
I
know,.
So
that's
why
you
need
alignment..
If
you
generate
protocol,
that's
cpu
or
architecture
agnostic,
you
need
to
make
sure
of
the
padding
and
the
alignment..
The
way
to
align
is
that
you
do
something
called
padding,
and
padding
means
you
just
add:
zero
bytes
before
the
data
starts,
so
make
it
so
that
that
data
actually
starts
at
a
boundary
that
is
defined
for
that
data.
Type.
A
so,
for
example,,
as
I
said,
natural
alignment
in
d-bus,.
What
that
means
is
that,.
If
it's
a
4
byte
integer,
it
has
to
be
aligned
with
4
byte
value,.
So
you
have
to
have
4
bytes
of
padding
if
it
doesn't
start
at
a
multiple
of
four
address.
things
like
that.
okay?.
So
thank
you
so
much
for
attending
and
I
hope
you
understood
some
of
it
at
least.
and
if
you
don't,,
as
I
said,,
let
me
know.,
I'm
very
happy
to
explain
things
to
you.,
I'm
wearing
the
green
one,,
so
you
can
do
that.