|
|
## Version 1.1
|
|
|
|
|
|
### Protocol
|
|
|
## Protocol
|
|
|
|
|
|
Arachni uses its own RPC implementation, provided by [Arachni-RPC](https://github.com/Arachni/arachni-rpc) ([design specification](https://github.com/Arachni/arachni-rpc/wiki)).
|
|
|
|
|
|
The protocol is as simple as possible, utilizing OpenSSL sockets and very simple messages
|
|
|
to facilitate communication.
|
|
|
|
|
|
### Serialization
|
|
|
## Serialization
|
|
|
|
|
|
The Arachni Framework provides its own serializer to the Arachni-RPC library.
|
|
|
It is essence using [MessagePack](http://msgpack.org/) with the addition of Zlib
|
|
|
compression when messages reach a certain size.
|
|
|
|
|
|
### Communicating with Arachni
|
|
|
## Communicating with Arachni
|
|
|
|
|
|
(To keep these examples short and sweet, I will be using the framework's own clients.
|
|
|
For a no dependency, bare-bones, reference implementation of a client please see
|
... | ... | @@ -47,7 +45,7 @@ I, [2014-08-03T19:28:31.867399 #48953] INFO -- System: Listening on 127.0.0.1:7 |
|
|
|
|
|
This is what happens when no options have been set; the default port is `7331`.
|
|
|
|
|
|
#### <a name="dispatcher-connect" href="#dispatcher-connect">Connecting to a Dispatcher</a>
|
|
|
### <a name="dispatcher-connect" href="#dispatcher-connect">Connecting to a Dispatcher</a>
|
|
|
|
|
|
```
|
|
|
require 'arachni'
|
... | ... | @@ -63,7 +61,7 @@ dispatcher = Arachni::RPC::Client::Dispatcher.new( |
|
|
)
|
|
|
```
|
|
|
|
|
|
#### <a name="dispatcher-dispatch" href="#dispatcher-dispatch">Requesting an Instance</a>
|
|
|
### <a name="dispatcher-dispatch" href="#dispatcher-dispatch">Requesting an Instance</a>
|
|
|
|
|
|
```
|
|
|
# Request for an instance to be dispatched.
|
... | ... | @@ -80,7 +78,7 @@ ap instance_info = dispatcher.dispatch |
|
|
# }
|
|
|
```
|
|
|
|
|
|
#### <a name="instance-connect" href="#instance-connect">Connecting to an Instance</a>
|
|
|
### <a name="instance-connect" href="#instance-connect">Connecting to an Instance</a>
|
|
|
|
|
|
```
|
|
|
instance = Arachni::RPC::Client::Instance.new(
|
... | ... | |