systems have been created. Most of these use an interface description language (IDL) to let various platforms call the RPC. The IDL files can then be used to generate code to interface between the client and servers. Analogues Notable RPC implementations and analogues include: Language-specific Java's Java Remote Method Invocation (Java RMI) API provides similar functionality to standard Unix RPC methods. Go provides package rpc for implementing RPC, with support for asynchronous calls. Modula-3's network objects, which were the basis for Java's RMI RPyC implements RPC mechanisms in Python, with support for asynchronous calls. Distributed Ruby (DRb) allows Ruby programs to communicate with each other on the same machine or over a network. DRb uses remote method invocation (RMI) to pass commands and data between processes. Erlang is process oriented and natively supports distribution and RPCs via message passing between nodes and local processes alike. Elixir builds on top of the Erlang VM and allows process communication (Elixir/Erlang processes, not OS processes) of the same network out-of-the-box via Agents and message passing. Application-specific Action Message Format (AMF) allows Adobe Flex applications to communicate with back-ends or other applications that support AMF. Remote Function Call is the standard SAP interface for communication between SAP systems. RFC calls a function to be executed in a remote system. General NFS (Network File System) is one of the most prominent users of RPC Open Network Computing Remote Procedure Call, by Sun Microsystems D-Bus open source IPC program provides similar function to CORBA. SORCER provides the API and ;exertion-oriented language (EOL) for a federated method invocation XML-RPC is an RPC protocol that uses XML to encode its calls and HTTP as a transport mechanism. JSON-RPC is an RPC protocol that uses JSON-encoded messages JSON-WSP is an RPC protocol that uses JSON-encoded messages SOAP is a successor of XML-RPC and also uses XML to encode its HTTP-based calls. ZeroC's Internet Communications Engine (Ice) distributed computing platform. Etch framework for building network services. Apache Thrift protocol and framework. CORBA provides remote procedure invocation through an intermediate layer called the object request broker. Libevent provides a framework for creating RPC servers and clients. Windows Communication Foundation is an application programming interface in the .NET framework for building connected, service-oriented applications. Microsoft .NET Remoting offers RPC facilities for distributed systems implemented on the Windows platform. It has been superseded by WCF. The Microsoft DCOM uses MSRPC which is based