Skip to main content

My Understanding of XPCOM

This post will describe my understanding of XPCOM as a technology and how it relates to my bachelors thesis

XPCOM overview

XPCOM is a cross platform component object model, similar to Microsoft COM. It has multiple language bindings, allowing XPCOM components to be used and implemented in JavaScript, Java, and Python in addition to C++
This is usually achieved by having certain object implement XPCOM Interfaces that are defined in XPIDL

XPCOM in Rust

There exist precedent and guides for having XPCOM components implemented in Rust.


  • Figure out what the difference between a component and a service is
  • Have a stab at defining an XPIDL for this service
  • Figure out where my component should live, so that I can place my stuff there

These links are mostly meant for my personal consumption but might prove useful to other people as well: