#http #api #gateway

archived macro katalyst_macros

Procedural macros for katalyst

1 unstable release

0.2.0 Jun 26, 2019

#15 in #api-gateway

Used in katalyst

MIT license

117 lines

Katalyst API Gateway

Crate 0.2.0 Build Status Documentation MIT License Maintenance

Katalyst is a high performance and low memory API Gateway. It can be used as either an appliance through Docker or it can be used as a library. This project is currently under heavy development and will likely experience many changes and issues as we work towards the 1.0 release.


  • Configuration via YAML files
  • Configuration design done using templating and modular 'expressions' for dynamic route handling
  • Request routing with either regex or custom route builders
  • Modular design for customization of the gateway, internal modules can be overridden
  • Load balance hosts using Round Robin, Least Connection, or Random algorithms
  • SSL/TLS Termination
  • Highly performant, with at least some use cases and loads outperforming nginx
    • Built on the tokio runtime with Hyper, leveraging async I/O where possible
  • Does not require rust nightly, despite the heavy async I/O
  • Usable as a rust library, standalone application, or lightweight docker container

Library usage

For library usage, refer to the official rust documentation.


Current installation of the binary requires Cargo, though other package formats may be coming soon.

# Add --force if you need to overwrite an already installed version
cargo install katalyst


Once installed, starting Katalyst is easy. Use the -c option to specify the config file. {{version}}

 katalyst -c config.yml
2019-06-25 19:44:03,103 INFO  [katalyst::config::parsers] Loading file from: config.yml
2019-06-25 19:44:03,105 INFO  [katalyst::server] Listening on
2019-06-25 19:44:03,105 INFO  [katalyst::server] Listening on

Run with the help command or flags to get all CLI options

 katalyst help
katalyst 0.2.0
Phil Proctor <philliptproctor@gmail.com>
High performance, modular API Gateway

    katalyst [OPTIONS] [SUBCOMMAND]

    -h, --help       Prints help information
    -V, --version    Prints version information

    -c, --config <config>          Config file [default: katalyst.yaml]
    -l, --log-level <log-level>    Logging level to use [default: info]

    help    Prints this message or the help of the given subcommand(s)
    run     Start the API Gateway (default)


Refer to the documentation here


~43K SLoC