Adobe Labs
 
 

cap bottom

Alchemy

Welcome to the preview release of codename "Alchemy." Alchemy is a research project that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2). The purpose of this preview is to assess the level of community interest in reusing existing C and C++ libraries in Web applications that run on Adobe® Flash® Player and Adobe AIR®.

With Alchemy, Web application developers can now reuse hundreds of millions of lines of existing open source C and C++ client or server-side code on the Flash Platform.  Alchemy brings the power of high performance C and C++ libraries to Web applications with minimal degradation on AVM2.  The C/C++ code is compiled to ActionScript 3.0 as a SWF or SWC that runs on Adobe Flash Player 10 or Adobe AIR 1.5.

Alchemy is primarily intended to be used with C/C++ libraries that have few operating system dependencies. Ideally suited for computation-intensive use cases, such as audio/video transcoding, data manipulation, XML parsing, cryptographic functions or physics simulation, performance can be considerably faster than ActionScript 3.0 and anywhere from 2-10x slower than native C/C++ code. Alchemy is not intended for general development of SWF applications using C/C++.


With Alchemy, it is easy bridge between C/C++ and ActionScript 3.0 to expand the capabilities of applications on the Flash Platform, while ensuring that the generated SWCs and SWFs cannot bypass existing Flash Player security protections.

Adobe is providing some example libraries, and developers are encouraged to share their ported libraries.

The Alchemy preview is prerelease software that is not supported by Adobe and may contain bugs. It is therefore advised that Alchemy not be used to generate code for use in production.

Watch Branden Hall, CTO of Automata Studios, discuss his experience working on the Ogg Vorbis porting project using Alchemy.
Watch Branden Hall, CTO of Automata Studios, discuss his experience working on the Ogg Vorbis porting project using Alchemy.

We are making this software available to gauge community interest in Alchemy and welcome your feedback.  Please use the feedback link below to request features, make comments and report problems. Please also note that this is a research project and there is no assurance that there will be a shipping version of Alchemy.

Getting Started

Follow these steps to get started with Alchemy:

  1. Download Flash Player 10 or Adobe AIR 1.5
  2. Download the Alchemy toolkit preview for your operating system
  3. Download and follow the Getting Started instructions, which walk you through the Alchemy tool chain setup, shows you how to compile C/C++ code into a SWC, and then use that SWC with a simple ActionScript example.
  4. Ask questions and share your feedback in the Alchemy forum

    Please note that your submission of comments, ideas, feature requests and techniques on this and other Adobe maintained forums, as well as Adobe's right to use such materials, is governed by the Terms of Use.
  5. Download sample libraries and share your own.

Community

Below you'll find references and links to help you participate in the Alchemy community.

Online Forum

Ask questions, discuss, and share feedback with other prerelease users and the development team in the online forums.

Please note that your submission of comments, ideas, feature requests and techniques on this and other Adobe maintained forums, as well as Adobe's right to use such materials, is governed by the Terms of Use.

Shared Libraries

Find and share libraries successfully ported to ActionScript with Alchemy.

See the shared Alchemy libraries

Developer Center

Learn more about developing for the Flash Player in the Developer Center.

Visit the Flash Player Developer Center

Resources

If you want to learn more about releases on Labs as well as other Adobe technologies, visiting a user group or connecting with an Adobe Community Expert is a great place to start.

Product Details


Documentation

The following documentation is available for the Alchemy preview:

FAQ

What is Alchemy?
Code name “Alchemy” is an experimental research project and tool chain from Adobe that allows users to compile C and C++ code that is targeted to run on the open source ActionScript virtual machine (AVM2). The C/C++ code is compiled to ActionScript 3.0 as a SWF or SWC that runs on Adobe Flash Player 10 or Adobe AIR 1.5. Alchemy is intended to be used with existing C/C++ libraries that have few OS dependencies. The generated content is within the security constraints of the AVM2, and cannot bypass Flash Player security protections.
What can you do with Alchemy?
With Alchemy, developers can reuse existing C and C++ client or server-side code in applications that run on Adobe Flash Player 10 or Adobe AIR 1.5. With Alchemy, it is easy to bridge between C/C++ and ActionScript 3.0 to expand the capabilities of applications on the Flash Platform, while ensuring that the generated SWCs and SWFs cannot bypass existing Flash Player security protections.
What are Adobe’s plans to productize Alchemy?
Alchemy was originally released as a research project and prerelease software available to assess the level of community interest in reusing existing C and C++ libraries in Web applications that run on Flash Player and AIR. There have been no additional updates to Alchemy since its release. While this technology preview was not intended for production applications, there have been requests from developers asking for official support in the Flash runtimes.

We’ve been listening and have decided to invest in creating an improved version of Alchemy, which we plan to release as part of a paid production offering for commercial development.  We intend to make non-commercial use free of charge.
What will the next iteration of Alchemy do?
The production release will offer significantly better performance and productivity over the Labs prototype.  By re-architecting major portions of the technology, we aim to enable code execution approaching native performance, scalable support for large code bases, full debugging support, up to 75% reduction in code size, and seamless integration with ActionScript.
When will this new release be available?
This new offering will be available with a future update to the Flash runtimes.  We are temporarily including the prototype in the initial releases of Flash Player 11 and AIR 3. As always, we continue to advise developers not to use the Alchemy prototype for production content.
Will my existing content continue to work?
Although we will be ending the Alchemy experiment, existing content created using Alchemy for Flash Player 10.x and AIR 2.x will continue to work in future versions of Flash Player and AIR. The new, fully re-designed Alchemy commercial offering will be needed to deliver Alchemy-enabled content that requires Flash Player 11 / AIR 3 and beyond, and we plan to make it free for non-commercial use.
How do I find out about future updates to Alchemy?
We encourage developers to ask questions, discuss, and share feedback with other prerelease users and the Alchemy development team in the online forums. Visit the Alchemy forum.
Why did Adobe pursue this research project?
Alchemy was designed to bring the power of C and C++ libraries to Web applications. The goal of this research project was to enable Web developers to re-use the massive amount of existing C and C++ code and expand the capabilities of applications deployed on Flash Player or AIR. Developers could re-use existing code that has already been tested and do so in a way that was safe to run in the browser in the Flash Player sandbox.
What type of projects benefited from Alchemy?
Alchemy was intended to be used with C/C++ libraries that have few operating system dependencies. It is ideally suited for computation-intensive use cases, such as audio/video transcoding, data manipulation, XML parsing, cryptographic functions, image encoding, PDF rendering or physics simulation. Alchemy was not intended for general development of SWF applications using C/C++ or for porting software that has platform specific features that were not supported in Flash Player.
What are the changes relating to Alchemy in Flash Player 11.2 and AIR 3.2?
Starting with Flash Player 11.2 and AIR 3.2, content targeting Flash Player 11 and AIR 3 (i.e., content using SWF version 13 and above) will not support the experimental Alchemy prototype. An upcoming new production version of Alchemy next year will allow developers to publish Alchemy-enabled content targeting Flash Player 11 or AIR 3 and beyond. Learn more.
What happens to my Flash Player 10.x and AIR 2.x content that uses Alchemy? Will these continue to work?
Yes; content created with the Alchemy prototype for Flash Player 10.x and AIR 2.x (SWF version 12 and earlier) will continue to work in Flash Player 11.2 and AIR 3.2 and future versions of Flash Player and AIR (as always, we continue to advise developers not to use the prototype for production content).

See answers to more frequently asked questions

System Requirements

The minimum system requirements for Alchemy are as follows:

Windows

Only Windows XP with Service Pack 2 has been tested. Specifically Vista has not been tested.
The following packages are required on Windows:

  • Cygwin development tools
  • Java (version 1.4 or greater)
  • Perl (you must also have the Compress::Raw::Zlib package installed)
  • Flash Player 10 or greater
  • Optionally:
    • Adobe AIR 1.5 or greater runtime
    • Either Adobe AIR 1.5 or greater SDK or Adobe Flex® SDK 3.2 or greater

Mac

The following packages are required on Mac OS X:

  • Perl 5.8 or greater (including Compress::Raw::Zlib.pm)
  • Java 1.5 or greater
  • Xcode 3.0 or greater
  • Flash Player 10 or greater
  • Optionally:
    • Adobe AIR 1.5 or greater runtime
    • Either Adobe AIR 1.5 or greater SDK or Flex SDK 3.2 or greater

Linux

Only Ubuntu 8.0.4 has been tested. The following packages are required on Linux:

Release Notes

This release of Alchemy is prerelease software and is designed for evaluation purposes only. The software contained within each download is not final; but, many portions of the technology are fully implemented and ready for you to try and discuss.

Top Technologies


Technology Groups


Showcase Gallery