Getting Started

This page walks you through the initial steps of getting setup with RapidRows.

Installation

RapidRows is a single binary executable without any dependencies, and as such requires no installation other than placing it in your $PATH. It is a command-line tool.

The easiest way to get the binary is to download the latest stable release from the GitHub releases page for your platform. Unpack the tarball and copy the rapidrows executable to wherever you like.

$ rapidrows --help
Usage: rapidrows [options] config-file
RapidRows is a single-binary configurable API server.

Options:
  -c, --check            only check if the config file is valid
  -l, --logtype string   print logs in 'text' (default) or 'json' format (default "text")
      --no-color         do not colorize log output
  -v, --version          show version and exit
  -y, --yaml             config-file is in YAML format

(c) RapidLoop, Inc. 2022 * https://rapidrows.io

If there is no binary for your platform, you can build RapidRows yourself.

Building it yourself

To build the binary yourself, first ensure you have working Go and C compilers. Go v1.18 or above is required. A modern gcc or clang should suffice as the C compiler.

To download and compile in one step, do:

go install github.com/rapidloop/rapidrows/cmd/rapidrows@latest

The executable will be present in $GOPATH/bin or (if $GOPATH is not set, as is usually the case) in ~/go/bin.

Starting the server

To start the RapidRows server, you need a configuration file. Here is a sample one:

version: '1'
listen: '127.0.0.1:8080'
endpoints:
- uri: /hello
  implType: static-text
  script: 'world!'

Copy this to a file called hello.yaml.

Before starting the server, check the configuration once:

$ rapidrows --check --yaml hello.yaml

The --check option tells rapidrows to only check the file and report any errors or warnings. No output means all is well.

Since our config file is in YAML syntax, we’ve added the --yaml option also. If omitted, rapidrows will assume the file is in JSON format.

Now start the server with:

$ rapidrows  -y hello.yaml
2022-09-24 10:10:57.261 INF API server started successfully listen=127.0.0.1:8080

The server is running now, and you can see if it is working by browsing to localhost:8080, or using curl:

$ curl http://localhost:8080/hello
world!

To stop the server, hit ^C:

$ rapidrows  -y hello.yaml
2022-09-24 10:10:57.261 INF API server started successfully listen=127.0.0.1:8080
^C2022-09-24 10:12:22.643 INF stop request received, shutting down timeout=60000
2022-09-24 10:12:22.643 INF API server stopped

Next steps

You can find lots of examples here in the documentation if you’d like to play around with it right away, or read the user’s guide for detailed explanations of the features.

Stuck? Questions? Feeback?

For help or general questions, use the GitHub discussions page. If you think you’ve found a bug, raise an issue here. Feel free to reach out to us directly via email (hello@rapidloop.com) or Twitter (@therapidloop).

© RapidLoop 2022. All rights reserved. This page was last updated 27 Sep 22 04:22 UTC.