Swarm can send and receive messages from languages other than Objective C. Swarm currently knows how to talk to Java, and now has some support for talking to COM (Component Object Model).
FArguments
FArguments provides a way to precisely describe the types and values for a call. FArguments knows how to convert common types (e.g. integers, objects) to language-specific types and knows about types unique to certain languages (e.g. native java objects).
FCall
FCall can issue calls to functions and methods in different languages. It requires a FArguments object to for the values to pass and to specify the return type.
object directory
Swarm `thinks' in Objective C, and thus requires opaque placeholders for non-Objective C objects. defobj maintains a directory between these placeholders and external objects.