ActionScript Message Format binary protocol

AMF is a great way to send data between an Apache Royale client and a backend server. The server could be written in Java, PHP, ColdFusion, .NET, Ruby, Python or many other backend technologies.

Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between a client and a remote service. The ActionScript 3 language provides classes for encoding and decoding from the AMF format. Backend servers need to know how to encode and decode AMF.

Since 2018, Apache Royale has been able to encode/decode AMF3 for all AS3 data types with the exception of Flash Dictionary and Vector classes. We expect to implement those data types in the future. Royale does not support AMF0 at this time. Some applications are currently in production using the Apache Royale AMF implementation.

Language back-end servers supporting AMF

Here’s a list of languages used to create backend servers that support AMF and can, in theory, work with Apache Royale. We have only tested a few of the servers with Apache Royale so far, and welcome learning of developers’ experiences.

Server Library Name Royale Tested
Java Apache Flex BlazeDS YES
.NET FluorineFX YES
Python AMFFast NO
Perl AMF::Perl NO
Ruby RubyAMF NO
ColdFusion Coldfusion NO

if you are working with any of the listed languages and can provide information about the working state of the library, or want to report other back-end implementations that work with AMF, please let us know in our user or dev mailing lists.

How to use AMF format in Apache Royale

Apache Royale supports the AMF protocol through these implementations: