All Projects → kataras → Rizla

kataras / Rizla

Licence: other
👀 Rizla builds, runs and monitors your Go Applications with ease. See https://github.com/kataras/iris-cli for Iris users.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Rizla

Node Hot Loader
Hot module replacement (hot reload) for Node.js applications. Develop without server restarting.
Stars: ✭ 111 (-33.13%)
Mutual labels:  hot-reload
Modern Monorepo Boilerplate
Modern Monorepo Boilerplate with Lerna, TypeScript, React/CRA, HMR, Jest, ESLint/TypeScript.
Stars: ✭ 127 (-23.49%)
Mutual labels:  hot-reload
V2 Universal Js Hmr Ssr React Redux
⚡ (V2) Universal JS - Server Side Rendering, Code Splitting and Hot Module Reloading ⚡
Stars: ✭ 147 (-11.45%)
Mutual labels:  hot-reload
Universal React Redux
🧐 A sensible universal starter kit for React + Redux
Stars: ✭ 112 (-32.53%)
Mutual labels:  hot-reload
Shadow Cljs
ClojureScript compilation made easy
Stars: ✭ 1,774 (+968.67%)
Mutual labels:  hot-reload
Instapack
All-in-one TypeScript and Sass compiler for web applications! 📦 🚀
Stars: ✭ 131 (-21.08%)
Mutual labels:  hot-reload
Babel Plugin Functional Hmr
Babel plugin enables HMR for functional components in React Native.
Stars: ✭ 100 (-39.76%)
Mutual labels:  hot-reload
Template Rwb
A full-featured Webpack setup with hot-reload
Stars: ✭ 165 (-0.6%)
Mutual labels:  hot-reload
Glean
hotfix for go applications via plugin, supports Linux and MacOS
Stars: ✭ 125 (-24.7%)
Mutual labels:  hot-reload
Awesome Chrome Extension Boilerplate
Use react + typescript + webpack to enhance your chrome extension development experience
Stars: ✭ 146 (-12.05%)
Mutual labels:  hot-reload
Hotreloading
Hot reloading as a Swift Package
Stars: ✭ 116 (-30.12%)
Mutual labels:  hot-reload
Reactly Starter Kit
Deployable React + Webpack 2 starter kit
Stars: ✭ 122 (-26.51%)
Mutual labels:  hot-reload
React Pages Boilerplate
Deliver react + react-router application to gh-pages
Stars: ✭ 134 (-19.28%)
Mutual labels:  hot-reload
Sass Vars Loader
Use Sass variables defined in Webpack config or in external Javascript or JSON files
Stars: ✭ 112 (-32.53%)
Mutual labels:  hot-reload
Reactql
Universal React+GraphQL starter kit: React 16, Apollo 2, MobX, Emotion, Webpack 4, GraphQL Code Generator, React Router 4, PostCSS, SSR
Stars: ✭ 1,833 (+1004.22%)
Mutual labels:  hot-reload
Next Express Bootstrap Boilerplate
⚡️ JavaScript boilerplate for a full stack app built using React.js, Next.js, Express.js, react-bootstrap, SCSS and full SSR with eslint.
Stars: ✭ 102 (-38.55%)
Mutual labels:  hot-reload
Hot Reload All The Things
Starter project for HMR with backend routes and server/client-side react.
Stars: ✭ 127 (-23.49%)
Mutual labels:  hot-reload
React Redux Universal Boilerplate
An Universal ReactJS/Redux Boilerplate
Stars: ✭ 165 (-0.6%)
Mutual labels:  hot-reload
React Refresh Webpack Plugin
A Webpack plugin to enable "Fast Refresh" (also previously known as Hot Reloading) for React components.
Stars: ✭ 2,413 (+1353.61%)
Mutual labels:  hot-reload
React Typescript Electron Sample With Create React App And Electron Builder
React-TypeScript-Electron sample with Create React App and Electron Builder
Stars: ✭ 143 (-13.86%)
Mutual labels:  hot-reload

Rizla builds, runs and monitors your Go Applications with ease.

Travis Widget Release Widget Report Widget License Widget Chat Widget

Installation

The only requirement is the Go Programming Language, at least 1.7.

$ go get -u github.com/kataras/rizla

Getting Started

$ rizla main.go #single project monitoring
$ rizla C:/myprojects/project1/main.go C:/myprojects/project2/main.go #multi projects monitoring
$ rizla -walk main.go #prepend '-walk' only when the default file changes scanning method doesn't works for you.
$ rizla -delay=5s main.go # if delay > 0 then it delays the reload, also note that it accepts the first change but the rest of changes every "delay".

Want to use it from your project's source code? easy

$ cat from_code_simple.go
package main

import (
    "github.com/kataras/rizla/rizla"
)

func main() {
  // Build, run & start monitoring the projects
  rizla.Run("C:/iris-project/main.go", "C:/otherproject/main.go")
  // watcher, _ := rizla.WatcherFromFlag("-walk")
  // rizla.RunWith(watcher, "./main.go", 0)
}
$ cat from_code_pro.go
package main

import (
    "path/filepath"
    "runtime"
    "time"
    "os"

    "github.com/kataras/rizla/rizla"
)

func main() {
  // Create a new project by the main source file
  project := rizla.NewProject("C:/myproject/main.go")

  // The below are optional

  // Optionally, change the out for info logs and error messages.
  project.Out.SetOutput(os.Stdout)
  project.Err.SetOutput(os.Stderr)

  project.Name = "My super project"
  // Allow reload every 3 seconds or more no less
  project.AllowReloadAfter = time.Duration(3) * time.Second
  // Custom subdirectory matcher, for the watcher, return true to include this folder to the watcher
  // the default is:
  project.Watcher = func(absolutePath string) bool {
        base := filepath.Base(abs)
        return !(base == ".git" || base == "node_modules" || base == "vendor")
  }
  // Custom file matcher on runtime (file change), return true to reload when a file with this file name changed
  // the default is:
  project.Matcher = func(filename string) bool {
        isWindows = runtime.GOOS == "windows"
        goExt     = ".go"
        return (filepath.Ext(fullname) == goExt) ||
        (!isWindows && strings.Contains(fullname, goExt))
  }
  // Add arguments, these will be used from the executable file
  project.Args = []string{"-myargument","the value","-otherargument","a value"}
  // Custom callback before reload, the default is:
  project.OnReload = func(string) {
        fromproject := ""
        if p.Name != "" {
            fromproject = "From project '" + project.Name + "': "
        }
        project.Out.Infof("%sA change has been detected, reloading now...", fromproject)
   }
   // Custom callback after reload, the default is:
   project.OnReloaded = func(string) {
        
   }

  // End of optional

  // Add the project to the rizla container
  rizla.Add(project)
  //  Build, run & start monitoring the project(s)
  rizla.Run(nil)
}

That's all!

FAQ

Ask questions and get real-time answers from the Chat.

Features

  • Super easy - is created for everyone.
  • You can use it either as command line tool either as part of your project's source code!
  • Multi-Monitoring - Supports monitoring of unlimited projects.
  • Rizla, by-default, uses the operating system's signals to fire a change because it is the fastest way and it consumes the minimal CPU.
    • You 're still able to change the watcher to use the filepath.Walk too with -walk flag.
  • delay reload on detect change with -delay

People


If you'd like to discuss this package, or ask questions about it, feel free to Chat.

The author of rizla is @kataras.

Versioning

Current: v0.1.1

HISTORY file is your best friend!

Read more about Semantic Versioning 2.0.0

Todo

  • [ ] Tests
  • [ ] Provide full examples.

Third-Party Licenses

Third-Party Licenses can be found here

License

This project is licensed under the MIT License.

License can be found here.

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].