{"id":13743724,"url":"https://github.com/chadrem/amf_socket","last_synced_at":"2026-01-04T21:50:07.102Z","repository":{"id":4188127,"uuid":"5305932","full_name":"chadrem/amf_socket","owner":"chadrem","description":"Bi-directional RPC library for Actionscript (Flash).  The easy button for high performance network communication!","archived":false,"fork":false,"pushed_at":"2015-03-31T02:42:32.000Z","size":300,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-27T23:42:21.014Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chadrem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-05T18:41:23.000Z","updated_at":"2023-03-10T11:51:26.000Z","dependencies_parsed_at":"2022-07-20T08:32:32.113Z","dependency_job_id":null,"html_url":"https://github.com/chadrem/amf_socket","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chadrem%2Famf_socket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chadrem%2Famf_socket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chadrem%2Famf_socket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chadrem%2Famf_socket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chadrem","download_url":"https://codeload.github.com/chadrem/amf_socket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245013932,"owners_count":20547177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:00:55.699Z","updated_at":"2026-01-04T21:50:07.059Z","avatar_url":"https://github.com/chadrem.png","language":"ActionScript","readme":"# AMF Socket - Actionscript\n\nAMF Socket is a bi-directional remote procedure call (RPC) system for Adobe Actionscript programs.\nThis library aims to make high quality and free RPC accessible to all of the Flash platforms (web, mobile, and desktop).\nUsing this library you can easily add event driven network functionality to your Flash applications without having to deal with the low level details.\nHigh performance and low latency is accomplished through the use of persistent TCP/IP sockets and Flash's native serialization format (AMF).\nDue to the use of AMF, you can send primitives, hashes, arrays, and even your custom classes over the network.\nAMF Socket tries to be the \"easy button\" for Flash networking by hiding as many details as possible.\nAdditionally, you can use any encoder/decoder functions you want in case you prefer JSON, MessagePack, etc.\n\n## Examples\n\nComing soon.\n\n## Requests VS Messages\n\nAMF Socket has two fundamental forms of communication.\nDepending on your application, you can choose to use one or both at the same time.\n\n### Requests\nRequests are designed to work similar to HTTP.\nAn endpoint (either your client or your server) can make a request to the other end of the connection.\nThe other end is then responsible for replying.\nAn example use case is asking your server to send back the result of a database query.\n\n### Messages\nMessages are fire and forget.\nUnlike requests, you can't respond to a message.\nUse cases include push notifications, chat messages, and stock tickers.\n\n## Class Mapper\n\nAMF has built in support for custom class mapping.\nThis is a great feature that isn't available by default in many other serialization formats (such as JSON).\nBy using it you will save time and and write less boilerplate code.\nIn order to use class mapping, you must must perform a number of steps for each of the classes you want to be able to send and receive:\n\n* Map your class in Actionscript:\n\n        // Pure Actionscript example:\n        registerClassAlias(\"com.some.namespace.CoolClass\", CoolClass);\n\n        // Flex example:\n        [RemoteClass(alias=\"com.some.namespace.CoolClass\")]\n        public class CoolClass {\n        }\n\n* Map your class in the server code (details are specific to each server side implementation of AMF).\n\n* Create appropriate instance variables, getters, and setters (these will be serialized).\n\n## Server Implementations\n\nContact me if you are interested in building server implementations.\nThe current list of implementations can be found below:\n\n* [Ruby](https://github.com/chadrem/amf_socket_ruby)\n\n## Wire Protocol\n\nEach message has a 4 byte header followed by a variable length payload encoded in AMF verison 3.\nThe header contains a single unsigned int that indicates the length (in bytes) of the payload.\nAll messages use big-endian byte ordering.\n\nFor more information on AMF: [http://en.wikipedia.org/wiki/Action_Message_Format](http://en.wikipedia.org/wiki/Action_Message_Format)\n\n## Copyright\n\nCopyright (c) 2012-2014 Chad Remesch. See LICENSE.txt for details.\n","funding_links":[],"categories":["Networking"],"sub_categories":["Sockets"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchadrem%2Famf_socket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchadrem%2Famf_socket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchadrem%2Famf_socket/lists"}