►
From YouTube: RustLang Meetup Malaysia - May 2021
Description
Ivan Tham gave a talk about pyoxidizer and another talk about implementing 3rd party trait for 3rd party type.
A
Okay,
so
welcome
to
rust,
meetup.
Malaysia
may
maybe-
and
there
are
two
talks
today
I'll-
be
talking
first
on
pi,
oxidizer
and
later
on-
how
to
implement
third-party
trades
for
the
body
types
and
sitting
up
around
there
and
first
pi
oxidizer
right
peroxidizer
is
a
tool
for
packaging
and
distributing
python
application.
A
It's
a
bit
similar
to
like
the
cx
freeze,
but
pi
oxidizer
works
for
more
platform
due
to
like
the
how
the
how
their
mechanism
work
implementation
here
so
for
use
cases
right,
one
of
them,
first
of
them,
is
deploy
single
binary
item
projects,
so
one
can
just
like
run
a
command
and
it
would
create
a
single
python
single
binary
for
the
python
project
and
others
include.
A
You
can
package
python
project
together
with
the
dependencies
into
a
single
binary
as
well,
and
do
some
rust
integration
stuff
like
you,
can
you
can
run
some
brass
code?
I
believe
that's
what
they
say.
I'm
not
sure
like.
How
much
is
that
and
first
the
installation,
the
there
are
two
ways
to
install
these.
One
is
through
pip,
a
python
pip
install
pipe
oxidizer
and
another
is
true:
python,
a
cargo
installed
peroxidizer
and
another,
or
can
also
install
through
package
manager.
A
So
I
install
through
cargo,
and
first
impression
is
the
docks,
is
a
bit
confusing
and
regarding
the
usage
is
like
missing
quite
a
huge
part,
how
to
get
started
with
a
if,
like
hello
world
python
project,
they
just
get
you
the
docs.
You
hello
is
just
to
get
you
to
the
interpreter
level
like
when
you
run
you'll
get
you
to
interpreter,
and
it's
a
bit
confusing
that
there
is.
A
There
are
two
entry
points,
the
first
being
an
id
conflict
file
and
there's
also
another
one,
a
nike
rush
project,
so
I'm
so
confused
when
I
first
said-
and
there
are
two
parts
so
I
need
config
file-
creates
a
blank
project
with
a
config
file,
just
like
a
single
file
there
and
by
default,
when
you
build
or
run
it
will
run
the
you
default
it
to
the
python
interpreter.
So
it
will
run
the
python
interpreter
like
in
a
in
a
single
binary
and
the
progress
project.
A
On
the
other
hand,
right
you
can,
it
will
generate
some
browse
code
with
also
with
the
same
config
file
and
with
some
rascal
src
main
and
inside.
The
rasco
is
calling
the
python
interpreter
using
their
own
api,
but
I
don't
even
know
I
don't
know
why.
Why
do
they
need
to
do
it?
This
way,
not
sure
why
it
just
it
also
does
the
same
thing.
A
It
also
involves
the
pilot
interpreter,
but
rather
than
doing
it
through
the
config
it
some
parts
of
it,
it
does
it
in
the
within
the
rascal
so
compared
to
others
that
I
tried
previously
for
packaging
python
binaries
right.
This
is
a
bit
harder
or
way
harder,
but
there
are
more
features
from
what
they
say
around
python
and
rust.
Integration.
A
Yeah,
you
can
see
like
pipe
pipe
oxidizer.
The
usage
is
just
a
hello
world
that
you
just
show
like
this,
and,
and
it
will
be
just
like
you
just
it
just
runs
the
interpreter.
A
So
there
is
a
bjl
file.
You
can
see
what
is
the
pcl
file,
so
it's
like
some
some
python
python
code
and
run,
and
by
default
it's
quite
it's
quite
a
lot
of
comments
like
you,
you
you
might
want
to
go
through
a
lot
of
stuff.
You
want,
if
you
want
to
rate
through
this
quite
long
and
then
run
right.
Here's
pi
oxidizer
run
for
some
time.
A
So
in
the
meantime,
you
just
see
that
accumulation,
as
you
can
see
like
the
other
commercial,
is
quite
long
and
they
have
like
it's
quite
long,
but
a
lot
of
it
is
like
api
documentation
and
like
how
to
use
it.
Whether
they're
having
like
getting
started,
guide
on
how
to
build
like
a
python
project
with
pyoxidizer,
and
they
also
have
some
comparison
with
other
projects.
A
A
So
like
in
one
of
the
comparisons,
they
say
that
oxidizer
is
not
like
preferred
when
there
are
lots
of
dependencies,
but
not
lots
of
native
dependencies
and
like
they
compared
to
pi
installer
and
summer.
A
A
A
A
A
A
This
I
didn't
try
because,
because
I
didn't
even
get
importing
this
module,
I
didn't
get
to
a
point
of
having
this
working
usually
like
you.
Just
have
hello,
dot,
py
right
print,
hello,
whoa,
and
then
you
can
just
do
python
dash
and
like
this
right,
but
I
do
find
that
hello
didn't
work.
A
No,
I
do
do
like
hello
here.
Didn't
work
yeah,
but
I
I
stopped
I
didn't
check
and
the
error
is
not
very
good,
like
the
typical
rust
errors,
some
conclusions
not
easy
to
use,
but
if
you
want
a
very
feature
full
thing
like
a
very
feature,
full
packaging,
this
might
be
one
of
the
things
you
can
see
if
you,
if
you
can
get
as
much
to
the
combination,
but
mainly
it's
just
api
documentation
on
how
to
use
it.
So
the
sources
you
can
break
from
pi
oxidizer
play
the
docs,
so
this
is
pi
oxidizer.
B
C
By
the
way
we
have.
B
B
Want
to
talk,
you
can
actually
type
out
the
question
on
the
rus
talk,
chat,
room
or
just
directly
in
the
streaming.
A
A
A
So
third
party
trade
means
that
quick,
the
trade
is
on
a
third
party.
The
trade
is
on
another
crack.
The
credit
is
like
a
library
in
russ
and
the
the
type
is
also
on
a
third
party
type.
So
on
our
last
talk,
we
talked
about
at
the
end
of
the
last
talk
right.
We
talked
about
using
inline
python,
writing
some
python
code
within
ras
code
and
passing
variables
from
russ
code
into
python
code
right
and
then.
A
A
You
see
that
there
is
you
see
that
there's
a
string
here,
the
date
the
day.
A
A
If
we
can,
wouldn't
it
be
good
if
you
can
directly
to
the
py
without
converting
it
to
string
first
because,
like
why
not
just
keep
the
original
item
date
time
type
rather
than
making
it
feel
like
a
hack
to
convert
the
day
into
like
string
like
the
year
year
year
dash
the
rfc
339
date,
which
is
like
the
year
dash
day
day.
So
it
feels
like
a
hack,
so
a
better
case
will
be
redirectly,
convert
from
the
rust
date
into
the
date
time
date,
which
is
a
better
choice,
but
we
can't
do
that
here.
A
So
chronology
cannot
be
converted
into
a
pi
iot
power
tree
is
a
title
or
integration.
It's
a
python
integration
for
like
rust
and
it's
applied
object
pipeline
is
like
a
project,
is
a
python
object,
and
why?
Because
chronology
chronology
does
not
implement
the
two
pi
object,
which
is
in
the
demo.
Okay
I'll
show
it
I'll
show.
A
A
Mainly
around
this
part,
you
see
that
there's
a
trade
implementation
right.
These
are
like
implementation
for
knighted.
I
see
oh,
how
come
they're
serialized.
This
irs
is
from
cert,
which
is
the
serialized
serialized
library,
eras,
serialization
library
rust,
like
forwarding
like
marshalling
or
converting
between
different
types
in
different
formats
like
to
json
and
stuff.
A
But
this
is
like
a
generic
one,
but
how
come
ninth
day
supports
the
serialized
serialization,
but
it
doesn't
support
for
the
python
python
like
pyo3
object
and
or
maybe
you
can
search,
type,
poetry
and
path
like
empire,
3,
conversion
with
less
c
conversion,
and
then
they
are
like
from
from
now
into
into
pi,
should
be
into
pi
in
terms
object.
So
this
is
the
one
that
is
like
converting
it
to
title
object
and
we
check
here:
do
we
see
to
pi
object?
A
A
A
B
C
A
A
A
Okay,
okay,
I
repeat
offering
rule,
but
for
those
that
don't
know
what's
up
now,
let's
explain
but
before
we
go
into
that,
the
explanation
is
based
on
this
original
ripple.
Therefore,
is
that
there's
a
very
good
explanation
there
and
before
we
go
into
talk
about
orphan
rule?
Let's
talk
about
coherence,
exactly
it's
quite
coherent,
but
you
can
just
call
it.
Coherence
is
like
at
least
one
chorus
at
least
one
implementation
of
a
trait,
and
at
most
that
can
be
mentioned
of
a
trade
for
any
given
time.
A
A
If
you
have
two,
if
you
have
two,
if
you
have
two
like,
if
you
have
good
serialize
right,
then
you
choose
and
there's
like
that
they
will
likely
cause
incoherence,
so
any
programming
interface,
any
programming
language.
They
have
like
the
features
like
crazy,
so
they'll
either
do
and
force
coherence
by
reducing
by
by
refusing
to
compile
programs
that
contains
complications
like
you,
implement
the
serialized
here
once
and
if
you
implement
serialize
for
the
same
type
in
another
place
again
so
which
one
when
the
when
the
trade
is
being
called
right.
A
A
Which
implementation
like
which
trade
to
use
for
that,
although
rust,
have
the
like?
You
can
specify
the
origin
which
trade
from
by
the
disambiguation
of
original
function
to
use.
But
in
this
case,
russ
chooses
to
enforce
coherence
which
makes
a
lot
of
things
easier
when,
especially
when
it
involves.
A
So
we
can
talk
about
offer
rule,
let
that
we
know
that
you're
that
grass,
right,
sometimes
you
all-
have
written
some
traits
and
you
might
notice.
So
there
are
two
rules
in
orphan
rule,
so
the
first
rule
is:
you
cannot
have
two
implement
if
I'm
pl
blocks
that
overlap
you,
you
may
probably
some
of
y'all
may
notice
this
where,
for
example,
trade
for
t
and
another
trade
for
t,
but
in
russia
do
create
bounds
right
like
debug
and
display
this.
A
Might
this
might
work,
but
in
in
some
cases,
in
in
many
cases
right,
the
the
type
can
overlap
like
some
types,
implement
debug
and
some
types
implement
display
and
sometimes
implement
both
of
them.
So
what
will
happen
for
those
that
implement
both
of
them,
that
they
both
have
the
same
trait
then,
which
one
we
call
like,
which
one?
Which
one
should
you
follow?
Should
we
follow
the
should
we
follow
display?
So
it
will
be
confusing.
A
A
The
both
either
either
one
of
the
type
or
trade
must
be
from
the
same
crate
like
the
same
crate.
You
you
define,
must
be
there.
Why
is
to
prevent
like
dependency?
How
so
what
if
both
crates
have
the
same
in
mpl
or
even
security
like,
for
example,
you
you
have
a
secret,
you
have
a
secret
type
secret,
there's
a
secret
crate,
but
in
another
crate
right
in
impl,
the
display
or
secret,
which
you
don't
want.
You
purposely.
A
You
purposely
don't
want
the
secret
type
to
be
to
have
the
display
trade,
so
people
can't
view
the,
but
then,
if
like
say
third-party
trade
implemented
and
then
a
user,
a
user
takes
in
both
the
crate
one
from
the
secret
type,
the
secret
crate
another
and
another
one
from
another
crate
for
the
secret
means
means
that
the
display
you
can
you
can
print
the
secret
now,
which,
which
will
be,
which
will
be
weird
like.
Besides,
it
breaks
some
of
the
stuff
there
which
it
doesn't
want
to
do
and
other
than
this
right.
A
A
So
what
it
does
is
it
just
wraps
around
the
knife
in
a
new
type,
and
it
adds
you
have
all
the
original
stuff
it
delegates
all
the
original
stuff
to
the
original
implementation
and
basically
okay.
Here
they
do
a
lot
of
macro.
So
so,
basically
what
it
does
is
like
this.
You
can
see
like
a
struck
naive.
That
is
basically,
this
is
the
original.
A
Upstream,
you
can
just
write
the
separate
and
you
can
just
keep
your
own
msrv.
Like
your
own
last
version,
you
can
delegate
everything
and
you
have
control,
but
it's
not
that
agronomic
when
you
look
at
it,
because
you
you'll
need
to
improve
click
from
another
create
which,
like
there's
like
10
integration
like.
A
That
would
be
weird
right,
but
we
see
that
hey
how
come
chronolog
already
supports
cert,
but
chronos
and
support
pyotr
so
means
that,
can
you
can
directly
just
put
iota
integration
into
chrono
right,
and
so
this
approach
may
not
be
good.
If
you
want
to
do
it
for
pro,
like
the
proper
integration
between
popular
crates,
called
crates
like
pile
tree
or
party,
is
not
a
caucus
but
like
cert.
Ideally,
you
want
to
have.
A
Let's
say
if
you
have
a
telegram
or
discord
api
crate,
you
might
want
to
directly
add
a
feature
to
allow
to
implement,
search
for
your
own
for
your
library,
so
other
people
can
use
or
even
pyrotree
and
stuff,
and
today
we'll
be
talking
about
how
to
integrate
it
directly
with
the
library
I
I
did
a
pull
request,
which
is
like
halfway.
A
So
I'll
discuss
how
we
did
it
and
one
of
the
main
benefits
we
we
have
here
is
we
it?
Can
you
detect
utilize
the
underlying
data
directly
like
the
chrono
chrono
right
in
some
parts
that
the
way
their
story
is
are
in
a
very
compact
form
for
the
date
they
store?
They
store
it
in
like
two
use
size
and
then
they
store
everything
there.
A
But
if
we,
if
you
use
the
high
level
api,
we
may
need
to
do
some
additional
instruction.
A
A
So
it's
the
2015
edition
and
we
think
like
so
we
decided
to
change
chronolog
upstream,
but
why
not
change
503,
but
the
developers
in
python
three
say:
okay,
so
you
can,
you
can
add
one
of
the
trade
to
and
what
it
either
you
can
add
it
to
either
chrono
or
pi
03,
both
works
so
for
up
you
can,
if
you
want
to
contribute
upstream,
so
you
can
up
sma
to
both
both
sides.
Your
priority
developers
say
they
can
edit
to
their
site
that
also
works
and
how
it
how
it
works
is.
A
Cargo
cargo
features
like
in
when
you
use
chrono
right.
You
can
just
specify
like
503.
If
you
want
the
pi
03
feature,
then
it
will
compile
that
pyro3
part
so
for
those
that
doesn't
need
the
for
those
that
doesn't
need
this
pylori
integration
right.
This
will
be
so
it
makes
use
of
the
car.
You
go
feature
flat
as
in
it
can
it
can.
It
can
only
compile
when
needed.
You
just
need
to
specify
that
you
want
this,
but
it's
it's
there
by
default.
I
think
it's,
therefore,
by
default.
A
It's
optional,
so
I
just
added
this
line
to
their
cargo
cargo
team
and
and
how
to
use
the
new
feature
if
it
was
added
to
the
mpc
feature.
Usually
you
you
want
to
have
like
a
feature
python
transaction.
To
add
this
new
feature,
and
this
is
the
just
a
dependency
part.
So
implicitly,
this
will
create
a
new
feature.
A
This
is
the
feature
flag.
We
usually
I
see
that
the
existing
code
that
put
it
inside
a
module,
let's
put
a
new
module
there
and
the
cfg
the
cfp
is
for
conditional.
This
is
the
macro
for
conditional
compilation
reflect
so
if
so
in
this
part,
like
I
say,
if
it's
enabled
this
part
will
compile
so
this
part
will
be
if
this
will
compile
right
means
that
now,
we'll
quote
support
now
naive
state
supports
required
object,
so
you
can
see
that
we
can.
We
can
make
use
of
the
internal
methods.
A
That
mdf
is
the-
and
this
is
one
of
the
internal
like
a
private
function
within
knife,
and
you
can
directly
use
the
nmda
month
and
mdf
day
directly
and
we
can
construct
a
pi
date
and
we
can
and
then
we
also
skip
the
parts,
because
it's
the
same,
we
just
do
some
processing,
it's
just
convert
converting
to
python
object,
and
otherwise
just
converting
from
python
object
yeah.
So
this
now,
you
all
should
understand
like
why.
A
A
A
Okay,
ryan-
I
don't
have
sample
I
have,
but
I
I
probably
can't
show.
A
A
So
you
see
right
right
once
we
implemented
that
we
don't
need
to
do
this.
We
can
just
throw
this
away
so
when,
when
we
do
a
pi
object
right
so
previously
we
can't
we
can't
do
to
pi
object
directly
is
because
date
is
not
implemented,
implemented
for,
like
the
from
pi
like
to
pi
object.
But
after
we
do
this
right,
we
can
just
already
we
can
throw
this
away,
so
we
can
just
have
self
dot
day
object.
Then
it
will
directly
convert
the
knife
date
into
the
titan
date
time.
A
A
A
A
A
A
C
A
A
A
C
A
A
A
A
This
is
this
requires
the
stuff
to
be
receivable
and
this
part-
and
it
won't
work
right
if,
if
daytime
doesn't
doesn't
support
cert,
this
will
work
if
they
have
the
support
use
case.
So
let's
say:
if,
if
I
remove
the
feature
right,
I
save
chrono.
I
remove
the
feature.
A
And
then
you
see
that
it
won't
work
like
serialize
is
not
implemented
for
this.
So
so
now
you
see
like
the
use
case
is
like
the
the
integration
is
like
smoother.
You
can
directly,
you
can
directly
just
use
the
serialized
clip
the
series
that
serialize
for
the
original
stuff.
So
this
is
the
third
chrono
and
then
and
then
you
need
to
imp
rather
than
chrono.
You
use
third
chrono
right
and
then
you
can.
A
You
can
just
do
like
just
add
a
feature
here
and
then
this
will
work,
so
it
will
just
give
you
the
determination
time
e
minis
yeah.
It's
always
correct
any
question
yeah.
This
is
quite
you
through
this.
I,
like
this
quite
useful
here
we
name
every
the
what
is
called
snake
case
to
camera
case
everything
inside
here.
You
can
do
it
on
here,
but
yeah.
I
just
leave.
A
Any
question:
what's
the
use
case
of
this,
so
it's
just
it
just
provides
a
click.
It
just
implement
the
trade,
that's
that's
it,
but
it
gives
a
better
integration
when
you're
using
different.
C
B
B
Okay,
any
questions
to
ask
from
the
live
audience
live
participants
and.
B
A
I
also
do
this.
You
want
to
see
this
okay,
maybe
in
the
middle.
I
can
explain
that
there's
local
c
and
there's
fixed
time
offset
here
is
the
library,
the
time
chrono.
If
it's
a
most
popular
time,
library
not
very
feature
feature
full,
because
it
doesn't
support,
doesn't
support
iana
and
chrono
only
support
fixed
time
offset,
which
the
people
say
is
bad,
but
it's
good
enough
for
utc
stuff,
like
the
cleaner
for,
like
the
rfc,
they,
the
iso
8601
date
or
the
rp3
8339
date.
It's
good
enough
for
that,
but
it
doesn't
support
local.
A
It
doesn't
support
like
different
calendar
system.
It
doesn't
support
that
like
it
is
already
built
with
gargoyle
calendar
in
mind,
like
the
day
is
just
a
good
girl
day,
I'm
pronouncing
correctly.
So
the
this
is
like
a
generic.
The
local
is
the
local
time
and
utc
is
the
time
the
differentiate
between
that.
But
it's
not
it's
not
like
all
features.
Is
there
0.4
yeah
0.4,
but
it's
more
feature
proof.
So
almost
everything
is.