Autowire 包含一对宏,可以让你在两个 Scala 系统之间执行类型安全、无反射的 RPC 远程过程调用。示例代码:
// shared interface trait Api{ def add(x: Int, y: Int, z: Int): Int } // server-side router and implementation object Server extends autowire.Server... object ApiImpl extends Api def add(x: Int, y: Int, z: Int) = x + y + z } // client-side callsite object Client extends autowire.Client... Client[Api].add(1, 2, 3).call(): Future[Int] // | | | // | | The T is pickled and wrapped in a Future[T] // | The arguments to that method are pickled automatically // Call a method on the `Api` trait