You aren’t getting an open source protocol today, but here’s some other stuff.
OkUI is an OpenGL-based framework for creating portable user interfaces, with a focus on performance and portability. We have some interesting technical and business constraints that result in a need for a single cross-platform UI. After investigating and trying several third-party solutions, we found that none of these were quite what we needed and created OkUI.
Scraps is a collection of various bits and pieces of C++ that we use across several of our projects internally. Some of the more notable things it includes:
- “codeformation”: Constructs objects based on JSON templates. Basically CloudFormation, but for C++.
- Logging: Extensible global logging mechanism used by the Live team’s projects.
- Containers: Various containers such as circular and sliding buffers.
- Encoding and String Manipulation: Typical stuff like base 64, hex encoding.
Before Scraps, we used Boost, but weren’t happy with the effect it had on our build times. Our dependencies on Boost were eliminated over time by Scraps, and we’ve been much happier with the result.
Most of the components can easily be pulled out of the library and used independently, so it makes a good reference and has a lot of handy code snippets for many common needs.
Simon is a collection of Python utilities that we use to vet some of our code and distributions in CI.
For example, we might run something like this before publishing an Android application:
simon distribution-test --extensions=.so,.dex,.arsc,.MF,.RSA,.SF,.png,.fnt,.xml --dynamic-symbol JNI_OnLoad --no-symbol '.*SomeFunctionName.*' dist/app-arm-release.apk
That would ensure several important things that might not be caught by other testing:
- No rogue files got mixed into the distribution. We wouldn’t want to accidently copy our source code into the APK.
JNI_OnLoadsymbol is present, as it must be for any native code to work.
- Our symbols have been stripped.
This is the blog you’re reading right now.
We’ll likely be open sourcing more over time, so star these repos and keep an eye on the blog for more in the future.