Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • A arachni
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 125
    • Issues 125
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Arachni - Web Application Security Scanner Framework
  • arachni
  • Wiki
  • Guides
  • Developer
  • RPC API

RPC API · Changes

Page history
Formatting update authored Feb 02, 2016 by Tasos Laskos's avatar Tasos Laskos
Hide whitespace changes
Inline Side-by-side
guides/developer/RPC-API.md
View page @ 4307e5dc
## 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(
......@@ -94,4 +92,4 @@ ap instance.service.alive?
```
**In order to successfully authenticate yourself to the instance don't forget
to include the authentication token.**
\ No newline at end of file
to include the authentication token.**
Clone repository

Pages [all]

  • Home
  • Installation instructions
  • For users
    • Executables
    • Command Line Interface
    • Web User Interface
    • Distributed components
      • RPC Client
      • RPC Server (Dispatcher)
      • REST Server
  • For developers
    • REST API
    • RPC API
    • Core API documentation
    • Development environment

Can't find what you're looking for? Why not have a look at the support portal?