robotraconteurgen(1)

NAME
robotraconteurgen - Robot Raconteur service definition utility

SYNOPSIS
robotraconteurgen [command] [options] [service1.robdef [service2.robdef ...]]

DESCRIPTION
robotraconteurgen is a utility for working with Robot Raconteur service definition (.robdef) files. It can generate thunk source code, verify service definitions, generate string tables, create node IDs, hash passwords, and pull service definitions from Robot Raconteur services. It supports multiple commands to perform different tasks. The command is selected via the first argument after the program name.

COMMANDS

--thunksource
    Generate thunk source code for a specified language from one or more .robdef files.

Syntax:
    robotraconteurgen --thunksource --lang=<target_language> [options] service1.robdef [service2.robdef ...]

Options:

    --lang=<target_language>
        Required. Specify the output language: cpp, csharp, or java.

    --import=<file>
        Optional, one or more. Import other .robdef files without generating code for them.

    --include-path=<dir>, -I <dir>
        Optional, one or more. Add search path for .robdef files.

    --master-header
        Optional. Generate a master header file (C++ only).

    --outfile=<filename>
        Optional. Output all generated code to a single file (C# only).

    --outdir=<dir>
        Optional. Specify output directory. Defaults to current directory; must exist.

--verify-robdef
    Verify one or more .robdef files without generating code.

Syntax:
    robotraconteurgen --verify-robdef [options] service1.robdef [service2.robdef ...]

Options:

    --include-path=<dir>, -I <dir>
        Optional, one or more. Add search path for .robdef files.

    --import=<file>
        Optional. Import .robdef files (not typically needed in this mode).

--string-table
    List all qualified names defined in service definitions for transport string tables (advanced use).

Syntax:
    robotraconteurgen --string-table [options] service1.robdef [service2.robdef ...]

--newnodeid
    Generate and print a new random generation 4 UUID.

Syntax:
    robotraconteurgen --newnodeid

--md5passwordhash
    Return the MD5 hash of a specified password, for use with PasswordFileUserAuthenticator.

Syntax:
    robotraconteurgen --md5passwordhash <password>

--pullservicedef
    Pull the service definition and all imported service definitions from the specified Robot Raconteur URL.

Syntax:
    robotraconteurgen --pullservicedef <url>

--help
    Print help message with all available options.

Syntax:
    robotraconteurgen --help

OPTIONS

-h, --help
    Print usage message.

--version
    Print program version.

--output-dir <dir>
    Specify output directory (default is current directory).

--thunksource
    Generate thunk source files.

--verify-robdef
    Verify robdef files.

--string-table
    Generate string table entries for robdef.

--newnodeid
    Generate a new NodeID.

--md5passwordhash
    Hash a password using the MD5 algorithm.

--pullservicedef
    Pull a service definition from a service URL.

--lang <lang>
    Specify language for thunk code generation.

-I, --include-path <dir>
    Include path for robdef files.

--import <file>
    Input file for use in imports.

--master-header <file>
    Master header file for generated C++ files.

--outfile <file>
    Unified output file (C# only).

ENVIRONMENT

ROBOTRACONTEUR_ROBDEF_PATH
    Environmental variable for additional search directories for .robdef files.

SEE ALSO

More documentation about Robot Raconteur is available online at https://robotraconteur.github.io/robotraconteur.

AUTHOR
John Wason <wason@wasontech.com>

COPYRIGHT

Copyright 2025 John Wason

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.