Frequently Asked Questions
Why use gRPC?β
gRPC
has a number of benefits for this project:
- Evolution of interfaces means that features can be added for particular calls added, without the need for numeric versioning.
gRPC
supports bidirectional streams. This is hugely beneficial for commands that produce incremental output of an indeterminate length. For example, this is heavily used in streaming video or logs from iOS.gRPC
provides flexibility in the implementation of the server/companion. This may allow us to migrateidb
's companion server to a Swift implementation away from a Objective-C++ one without affecting the client's implementation.
Where did fbsimctl
go?β
fbsimctl
has now been removed from the codebase. idb
is it's replacement. We learned a lot thought building fbsimctl
which has informed a lot of the design considerations for idb
. For instance, it had a very provisional "RPC" mechanism via sending HTTP requests which was one of the design goals of idb
. All commands that fbsimctl
has implemented are now implemented by idb
.
The last working version of fbsimctl
is tagged as v1.1.0
, which you can build or fork from. It has been removed from the codebase in the interests of clarity.