Featured Works
We're always cooking up useful open source software in our labs. Here are a few of our most prominent works from recent times.
We're always cooking up useful open source software in our labs. Here are a few of our most prominent works from recent times.
Contributed to FreeBSD, the bhnd(4) driver family provides platform support for both SoCs and Wi-Fi devices from Broadcom's Home Networking Division.
Provides an in-process live crash reporting framework for use on both iOS and macOS. Crash reports are output as protobuf-encoded messages, and may be decoded using the CrashReporter library or any Google Protobuf decoder.
A data storage, processing, and presentation framework based on relational algebra and written in Swift. The core PLRelational framework allows for declaratively expressing relationships and observing deltas when data is changed. The companion PLRelationalBinding framework sits on top and enables an approach we call “reactive relational programming” that can greatly simplify UI development.
An SQL database access library for Objective-C, initially focused on SQLite as an application database. The library supports macOS, iOS, and Windows (via Cocotron).
Some cool Objective-C projects we built a while back. Still loved and not entirely forgotten!
Implements runtime and compiler support for C and Objective-C Blocks on Mac OS X 10.5 and iPhone OS 3.0. PLBlocks is based entirely on Apple’s block runtime and compiler additions for Snow Leopard.
Enables the use of __weak with ARC on Mac OS X 10.6 and iOS 4. Add one .m file to your project, add two compiler flags, and happily use __weak while keeping compatibility with earlier OSes.
An Objective-C implementation of asynchronous inter-thread message passing to facilitate the implementation of concurrent software on both the desktop (macOS) and embedded devices (iOS).
Provides an open-source implementation of imp_implementationWithBlock(), using vm_remap()-based trampolines.
Provides an easy-to-use block-based swizzling API, using the block trampoline library provided by PLBlockIMP, and a set of custom assembly trampolines for ARMv7, ARMv7s, ARM64, and x86-64.
We spend much of our time with Swift and Objective-C, but our expertise doesn't end there. We've built significant libraries in other languages — Java, Scala, C++, the list goes on — and now we can add the Rust programming language to that list. Here are a few Rust libraries that have emerged from our R&D efforts.
A Rust library that provides combinators for purely functional, declarative encoding and decoding of binary data. Its design is largely derived from that of the scodec library for Scala.
Provides support for heterogeneous lists (known as HLists) in Rust. An HList is a functional, tuple-like, strongly-typed data structure that can contain elements of differing types.
Another Rust library that offers up lenses, which are a mechanism in functional programming for focusing on a part of a complex data structure.