Today marks the public introduction of the Matrix Codebrowser. It’s an instance of codebrowser that is hosting the sources for mtxclient, libQuotient, and olm (with more projects to come in the future).


But it’s almost surreal to see my own code in a page that I usually see when I need to understand Qt’s inner workings.

What is it good for?

If you’ve never used a codebrowser instance before, you probably are wondering “why would you make such a big deal about a public source mirror?” Well, codebrowser doesn’t just mirror a repository to a web interface. It also uses compilation information to detect and display all the symbols in a source file. For example, try mousing over some symbols in the QScopedValueRollback<> source from the official codebrowser instance.

This ability to easily navigate the content of a library’s codebase is the raison d’ĂȘtre of codebrowser. I occasionally have a need to see exactly what a certain Qt function is doing under the hood; while I could grep through the GitHub mirror, it’s far faster to look up the function in codebrowser, and I can also quickly dive into function calls from there.

More to come

The current public version of the code only supports C++ codebases; however, the official instance has seen massive work by KDAB to add support for Rust and Dart code. Once KDAB’s work is made public, I plan to add more repositories like matrix-rust-sdk and vodozemac.

You can also submit requests! I’m currently mainly focused on Matrix-related libraries, since that is likely the most useful code I can support, but if you want to see your favorite client or server added, I’ll be happy to add it (as long as it’s within reason). Just leave a comment below or come say hi on Matrix.


powered by Cactus Comments