/route-guide

Route Guide, an example gRPC API based on Protojure, Pedestal & Duct (ported from https://github.com/grpc/grpc/tree/v1.34.0/examples/python/route_guide)

Primary LanguageClojure

route-guide

CircleCI

Route Guide, an example gRPC API based on Protojure, Pedestal & Duct (ported from https://github.com/grpc/grpc/tree/v1.34.0/examples/python/route_guide).

Developing

Prerequisites

Setup

When you first clone this repository, run:

lein duct setup

This will create files for local configuration, and prep your system for the project.

Development environment

To begin developing, start with a REPL.

lein repl

With rebel-readline:

$ lein rebel

Then load the development environment.

user=> (dev)
:loaded

Run go to prep and initiate the system.

dev=> (go)
:initiated

By default this creates a web server at http://localhost:8080.

When you make changes to your source files, use reset to reload any modified files and reset the server.

dev=> (reset)
:reloading (...)
:resumed

Production build & run

$ lein uberjar
$ java -jar target/route-guide.jar

Testing

Testing is fastest through the REPL, as you avoid environment startup time.

dev=> (test)
...

But you can also run tests through Leiningen.

lein test

with cloverage:

$ lein test-coverage
# Open the coverage report
$ open target/coverage/index.html

Linting

$ lein lint
$ make lint
  • fixing formatting
$ make cljstyle-fix

API Documentation (Codox)

$ lein codox
$ open target/codox/index.html