Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
About The Best Formula In The World
Architecture details
By Reference Argument Passing
Compatibility between versions
Creating And Using Libraries
Database Datatype Mapping
Database Request Quoting
Date & time management
Dates and calendars
DBus and Gambas
Differences Between Shell And Exec
Differences From Visual Basic
Distributions & Operating Systems
Drag & Drop
DrawingArea Internal Behaviour
External functions datatype mapping
Frequently Asked Questions
Gambas Farm Server Protocol
Gambas Mailing List Netiquette
Gambas Markdown Syntax
Gambas Naming Conventions
Gambas Object Model
Gambas Scripting
Gambas Server Pages
Gambas Unit Testing
Gambas Wiki Markup Syntax
Getting Started With Gambas
Hall Of Fame
Image Management In Gambas
Including Help Comments in Source Code
Interpreter limits
Just In Time Compiler
Just In Time Compiler (old version)
Localisation and Internationalization
Mailing Lists & Forums
Naming Conventions
Network Programming
ODBC Component Documentation
PCRE Pattern Syntax
Porting from Gambas 2 to Gambas 3
Previous News
Project Directory Structure
Release Notes
Reporting a problem, a bug or a crash
Rich Text Syntax
Text highlighting definition file syntax
The Program has stopped unexpectedly by raising signal #11
Variable Naming Convention
WebPage Syntax
Web site home page
What Is Gambas?
Window & Form Management
Window Activation & Deactivation
Window Life Cycle
Error Messages
Gambas Playground
How To's
Language Index
Language Overviews
Last Changes
Search the wiki
To Do
Wiki License
Wiki Manual

Gambas Farm Server Protocol


1. Protocol summary

The Gambas farm server protocol is based on HTTP requests.

Sending a request

Most of the requests must be submitted through the POST action, exactly like a HTML form.

Gambas 3.7 will provide an HttpForm class to send these kind of requests easily.

If you don't have to send files, you can use the GET action.

Getting the answer

The answer is usually a text file whose the first line is the answer status, and the rest of the file the answer contents.

The line separator is the CR+LF sequence.

If the status line is 10 OK, then the request has been successful, and the useful contents starts at the second line.

Otherwise, the request has failed, and the answer status is made of a two-digit error code, a space, and an error description. The answer contents may include more error details.

Every text is UTF-8 encoded.

2. Register a user




login User login.
password User password.
name User full name.
email Confirmation e-mail.


This request allows to register a new user to the server.

An mail is sent to the specified e-mail address that includes an activation link. That activation link is the confirm registration request (see the next paragraph), and is based on a random hexadecimal key.

3. Confirm registration




login User login.
key Confirmation key.


This request confirm the registration of the new user.

The confirmation key must match the key provided into the e-mail sent by the registration request.

4. Publishing a software




login Software owner login.
password Software owner password.
name Software name.
version Software version, with the X.Y.Z syntax.
desc Software full description.
gambas Gambas version required, with the X.Y.Z syntax.
checksum SHA256 source archive checksum.
source Source archive. It must be a file with the tar.gz or tar.bz2 extension.
icon Software icon. It must be a 64x64 PNG file.
screenshot An optional screenshot of the software. It should be a JPEG or PNG file.
url An optional URL for the software project website.
tags A list of tags, as identifiers separated by commas.
dependencies A list of dependencies separated by commas. A dependency is a software name followed by an optional minimum X.Y.Z version.


This request allows to register a software to the server.

You must provide a valid login and password to register.

5. Get information about a software

6. Download a software

7. Add or remove a vote for a software

8. Software search

9. Tag search

10. Error codes