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)). 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 The protocol is as simple as possible, utilizing OpenSSL sockets and very simple messages
to facilitate communication. to facilitate communication.
### Serialization ## Serialization
The Arachni Framework provides its own serializer to the Arachni-RPC library. 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 It is essence using [MessagePack](http://msgpack.org/) with the addition of Zlib
compression when messages reach a certain size. 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. (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 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 ...@@ -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`. 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' require 'arachni'
...@@ -63,7 +61,7 @@ dispatcher = Arachni::RPC::Client::Dispatcher.new( ...@@ -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. # Request for an instance to be dispatched.
...@@ -80,7 +78,7 @@ ap instance_info = dispatcher.dispatch ...@@ -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( instance = Arachni::RPC::Client::Instance.new(
...@@ -94,4 +92,4 @@ ap instance.service.alive? ...@@ -94,4 +92,4 @@ ap instance.service.alive?
``` ```
**In order to successfully authenticate yourself to the instance don't forget **In order to successfully authenticate yourself to the instance don't forget
to include the authentication token.** to include the authentication token.**
\ No newline at end of file
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?