CrossBridge uses high-performance memory-accessopcodes in the Flash Player (known as "Domain Memory") to work with in-memory data quickly.[10] CrossBridge uses the LLVM and GCC as compiler backends, in order to compile C++ code, optimize it, and transform it to run within AVM2 (ActionScript Virtual Machine 2). Programs built with CrossBridge are up to 10 times faster than normal ActionScript code,[4][5][6] but up to 2× to 10× slower than native C++ code.[11]
CrossBridge can generate Flash Player movies (.swf files), or Flash Libraries (.swc files), which can then be used by larger projects written in ActionScript 3 and compiled using the free Apache Flex SDK (formerly the Adobe Flex SDK). CrossBridge also uses the GPU-based 3D rendering acceleration present in Flash Player 11 (known as Stage3D).[12]
In 2008, CrossBridge was released by Adobe as "Project Alchemy", on the Adobe Labs website. It enabled compilation of specially modified C++ projects to SWF, using the LLVM and GCC compilers.[7]
In 2012, in an attempt to monetize Flash Player, Adobe restricted use of the Stage3D and Domain Memory features of Flash Player under the "Premium Features" brand. The "Premium Features" were licensed for use and publishers were to pay royalties to Adobe for use of the same.[16] Project Alchemy was commercially released as the Flash Runtime C++ Compiler.[9]
In 2013, Adobe open-sourced the Flash Runtime C++ Compiler as CrossBridge, and released it on the GitHub code hosting website.[17] The "Premium Features" were also made free for use, and no longer required licensing or royalties.[18]