Skip to content

Simple Rust web service that serves calendar of a goout.net user in iCalendar format

License

Notifications You must be signed in to change notification settings

strohel/goout-calendar

Repository files navigation

goout-calendar

Simple web service that serves calendar of a goout.net user in iCalendar format.

Documentation

Reverse-engineered GoOut REST API documentation is present in this repository in the apiary.apib file in API Blueprint format, and beautifully rendered (including ability to call endpoints) on Apiary.

The endpoints.txt file simply lists available endpoints.

Goout-calendar itself is a Rust micro web service using Rocket as a web framework. The calendar.rs module is responsible for handling of the client-facing endpoint, which lets the goout_api.rs module iteract with GoOut API.

Build and Deploy

Goout-calendar requires Rust 1.33+, but the Rocket dependency requires nightly or devel Rust build.

If you install Rust toolchain locally, you can cargo build, cargo run etc.

Alternatively, enclosed Dockerfile lets you build using docker build -t goout-calendar . and run using docker run -p 80:80 goout-calendar.

You can also deploy any cloud environment supporting Knative, for example Google Cloud Run by using the knativeservice.envsubst.yaml Knative service definition file.

Finally, there is cloudbuild.yaml configuration file for Google Cloud Build (Continuous Integration) to build and deploy automatically. Note to myself: I've configured GCB trigger on the GitHub repo to build & deploy automatically on push of a tag.

Demo Instance

I've set up a demo instance at Google Cloud Platform at http://goout.strohel.eu/.

See Also

About

Simple Rust web service that serves calendar of a goout.net user in iCalendar format

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published