I've done tons of work - mostly open source - over the years. If you're interested in what I've done, you've come to the right place!

Hobby work

nanorand (Rust)

nanorand is a zero (required) dependency library providing PRNGs and an CSPRNG, written in Rust.

It has over half a million downloads on crates.io, and is used in some popular libraries such as flume.

I wrote this library without really looking at the source of any other Rust RNG libraries - I instead used implementations in other languages such as C and Lua as a reference.

Currently, nanorand provides the WyRand and Pcg64 PRNGs and the ChaCha CSPRNG. My WyRand implementation is the fastest one available in Rust (last I checked), clocking in at around 16.4 GB/s on an M1 Macbook Air.

It is licensed under the Zlib license, and available on GitHub.

sweetpaste (Rust)

sweetpaste is a pastebin written in Rust, with zero JavaScript, and full support for syntax highlighting (all rendered server-side).

It is available on my GitHub, under the MPLv2 license.

Xenon (Rust, Objective-C, Swift)

Xenon is an jailbroken iOS tweak that allows you to access your device's filesystem from a PC.

I'm not the proudest of it, as it tends to be buggy for some people and I'm not entirely sure why, but it has proven very popular, with over a thousand purchases so far.

The partial source is available on GitHub, and the tweak itself is available for purchase on Chariz.

chippy (Rust)

chippy is a CHIP-8 emulator I wrote while bored. It fully supports the base CHIP-8 instruction set, the CHIP-48 instruction set, and it also has unfinished SUPER-CHIP support. It also features a fully fledged debugger GUI, using the egui crate!

It is available on GitHub.

tracing-oslog (Rust)

tracing-oslog is a library for the tracing Rust logging library, that provides a tracing Layer for the Apple os_log logging system that is available on macOS and iOS!

It is licensed under the Zlib license, and is available on GitHub or crates.io.

xpc-serde (Rust)

xpc-serde is a Serde serializer/deserializer that allows serde types to be (de)serialized into native XPC (a macOS/iOS cross-process communication API) messages. This allows two Rust programs to communicate using XPC, without the additional overhead of converting to/from bincode or msgpack or the like.

It is licensed under the MPLv2 license, and is available on GitHub.

Crabapple (Rust with ObjC runtime usage)

Crabapple was a framework for creating iOS runtime tweaks using Rust, through objc runtime bindings and macro magic. I never really finished it, due to the fact it didn't work on arm64e, but it kinda works!

It is available on GitHub under the Zlib license, albeit not in a finished state ofc.

PongoKit (Rust)

PongoKit is a framework for running Rust code on pongoOS, a preboot OS ran by the checkra1n exploit for pre-A12 iOS devices. It provides access to pongoOS's various APIs, and is even used for a basic libstd implementation for pongoOS! I've also written a demo using PongoKit, which is a fully playable version of the classic game Pong!

Sadly, the repository has been lost (had to learn to take backups of my git repos the hard way), but here's a funny little thing I did with PongoKit when it was still around:

amogus on an iPad

Brimstone (Rust, C)

Brimstone is a security suite that provides code tampering protection for iOS runtime tweaks and software, including data protection, code encryption, code verification, etc. It has heavy amounts of both C and Rust code - C is used for the actual protection itself, while Rust is used for the "processor" that applies the protection to a binary.

Brimstone is not open source, however I would be happy to share snippets to anyone trustworthy.

System76 work (Dec 2021 - Sep 2022)

cosmic-settings

I helped initially develop cosmic-settings

It is still WIP, however you can see a preview on this It's FOSS article, or just compile it yourself!

It is available on GitHub under the GPLv3 license.

launch-pad

I developed launch-pad, a Rust crate for helping manage background processes in an application

It is available on GitHub under the MPL-2.0 license.

cosmic-session

I developed cosmic-session, the session/process manager for the COSMIC desktop.

It is available on GitHub under the GPLv3 license.