All Projects → devlocker → Tychus

devlocker / Tychus

Licence: mit
Command line utility to live-reload your application.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Tychus

Devd
A local webserver for developers
Stars: ✭ 3,186 (+2469.35%)
Mutual labels:  livereload
Elm Live
⚡ A flexible dev server for Elm. Live reload included.
Stars: ✭ 973 (+684.68%)
Mutual labels:  livereload
Jus
🍉 An opinionated tool for making static websites with browserify
Stars: ✭ 107 (-13.71%)
Mutual labels:  livereload
Browser Sync Webpack Plugin
Easily use BrowserSync in your Webpack project.
Stars: ✭ 356 (+187.1%)
Mutual labels:  livereload
Gowatch
🚀 gowatch is a command line tool that builds and (re)starts your go project everytime you save a Go or template file.
Stars: ✭ 539 (+334.68%)
Mutual labels:  livereload
Boot Figreload
Boot task providing live-reload using Fighweel client
Stars: ✭ 50 (-59.68%)
Mutual labels:  livereload
spring-boot-angular2-starter
Starter application. Spring Boot, Angular 2, TypeScript, Gulp, Gradle, SCSS.
Stars: ✭ 35 (-71.77%)
Mutual labels:  livereload
Flexlib
FlexLib是一个基于flexbox模型,使用xml文件进行界面布局的框架,融合了web快速布局的能力,让iOS界面开发像写网页一样简单快速
Stars: ✭ 1,569 (+1165.32%)
Mutual labels:  livereload
Livereactload
Live code editing with Browserify and React
Stars: ✭ 870 (+601.61%)
Mutual labels:  livereload
Boot Reload
Boot task providing live-reload of browser css, images, etc.
Stars: ✭ 90 (-27.42%)
Mutual labels:  livereload
Hotreload
Xamarin.Forms XAML hot reload, live reload, live xaml
Stars: ✭ 407 (+228.23%)
Mutual labels:  livereload
Electron Reloader
Simple auto-reloading for Electron apps during development
Stars: ✭ 463 (+273.39%)
Mutual labels:  livereload
Html5 Boilerplate
A simple, fast, modern, pure html, css (and sass), js, live reload starter template
Stars: ✭ 65 (-47.58%)
Mutual labels:  livereload
Markserv
🏁 serve markdown as html (GitHub style), index directories, live-reload as you edit
Stars: ✭ 304 (+145.16%)
Mutual labels:  livereload
Fuzzymail
📨 Email template generator. Making emails fun again.
Stars: ✭ 114 (-8.06%)
Mutual labels:  livereload
Jet Live
c++ hot code reload for linux and macos
Stars: ✭ 283 (+128.23%)
Mutual labels:  livereload
Slater Theme
Shopify Starter theme based on slate
Stars: ✭ 47 (-62.1%)
Mutual labels:  livereload
Apiproject
[https://www.sofineday.com], golang项目开发脚手架,集成最佳实践(gin+gorm+go-redis+mongo+cors+jwt+json日志库zap(支持日志收集到kafka或mongo)+消息队列kafka+微信支付宝支付gopay+api加密+api反向代理+go modules依赖管理+headless爬虫chromedp+makefile+二进制压缩+livereload热加载)
Stars: ✭ 124 (+0%)
Mutual labels:  livereload
Simple Boilerplate
A simple webpack boilerplate for your comfortable work with HTML, JS and CSS.
Stars: ✭ 116 (-6.45%)
Mutual labels:  livereload
Devreload
Auto reload for ASP.NET core development
Stars: ✭ 66 (-46.77%)
Mutual labels:  livereload

tychus

Tychus is a command line utility for live reloading applications. Tychus serves your application through a proxy. Anytime the proxy receives an HTTP request, it will automatically rerun your command if the filesystem has changed.

tychus is language agnostic - it can be configured to work with anything: Go, Rust, Ruby, Python, scripts, and arbitrary commands.

Installation

Homebrew on macOS

brew tap devlocker/tap
brew install tychus

With Go

Assuming you have a working Go environment and GOPATH/bin is in your PATH

go get github.com/devlocker/tychus

Windows

Currently isn't supported :(

Usage

Usage is simple, tychus [command] A proxy will be started on port 4000. When an HTTP request comes in and the filesystem has changed, your command will be rerun.

tychus go run main.go

Options

Tychus has a few options. In most cases the defaults should be sufficient.

  -a, --app-port int         port your application runs on, overwritten by ENV['PORT'] (default 3000)
  -p, --proxy-port int       proxy port (default 4000)
  -x, --ignore string        comma separated list of directories to ignore file changes in. (default node_modules,log,tmp,vendor)
  -w, --wait                 Wait for command to finish before proxying a request.
  -t, --timeout int          timeout for proxied requests (default 10)

  -h, --help                 help for tychus
      --debug                print debug output
      --version              version for tychus

Note: Tychus will not look for file system changes in any hidden directories (those beginning with .).

Examples

Example: Web Servers

// Go - Hello World Server
$ tychus go run main.go
[tychus] Proxing requests on port 4000 to 3000
[Go App] App Starting on Port 3000

// Make a request
$ curl localhost:4000
Hello World
$ curl localhost:4000
Hello World

// Save a file, next request will restart your webapp
$ curl localhost:4000
[Go App] App Starting on Port 3000
Hello World

This can work with any webserver:

// Rust
tychus cargo run

// Ruby
tychus ruby myapp.rb

Need to pass flags? Stick the command in quotes

tychus "ruby myapp.rb -e development"

Complicated command? Stick it in quotes

tychus "go build -o my-bin && echo 'Built Binary' && ./my-bin"

Example: Scripts + Commands

Scenario: You have a webserver running on port 3005, and it serves static files from the /public directory. In the /docs folder are some markdown files. Should they change, you want them rebuilt and placed into the public directory so the server can pick them up.

tychus "multimarkdown docs/index.md > public/index.html" --wait --app-port=3005

Now, when you make a request to the proxy on localhost:4000, tychus will pause the request (that's what the --wait flag is for) until multimarkdown finishes. Then request will be forwarded to the server on port 3005. multimarkdown will only be run if the filesystem has changed.

Other Proxy Goodies

Error messages

If you make a syntax error, or your program won't build for some reason, the stderr output will be returned by the proxy. Handy for the times you can't see you server (its in another pane / tab / tmux split).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].