Wanderlust

command module
v0.0.1-tiedot Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2014 License: GPL-3.0 Imports: 5 Imported by: 0

README

Wanderlust - WIP

Cache warmer with priorities

Wanderlust, the yearning to travel through Google Analytics (1), Piwik (1), REST endpoints (1), sitemap.xml, textarea input, etc to warm up the caches of your website.

(1) available to buy.

Cold Cache vs. Warm Cache ?
Cold Cache

There is analogy with cold engine and warm engine of the car.

When the cache is empty or has irrelevant data, so that CPU needs to do a slower read from main memory for your program data requirement.

Warm Cache

When the cache contains relevant data, and all the reads for your program are satisfied from the cache itself.

Architectural Overview

mindmap

Build

Using https://github.com/laher/goxc

Setup go/src for darwin, linux and windows http://dave.cheney.net/2013/07/09/an-introduction-to-cross-compilation-with-go-1-1

Run make build. If you are interested in pre-compiled binaries, ping me.

Dependencies to external packages are all included in this repository. Yes there are apps like godep here to handle this but I decided to implement each package directly. Maybe some parts will be moved out of the repository, mainly those which are on github and keep those which needs hg or bzr.

Cross build inside docker container https://github.com/docker-library/docs/tree/master/golang

Profiling

To start the program with CPU profiling: $ WL_PPROF_CPU=1 ./wanderlust [options] [arguments]

To start the program with Memory profiling: $ WL_PPROF_MEM=1 ./wanderlust [options] [arguments]

To read the generated profile:

$ go tool pprof ./wanderlust /path/to/cpu.pprof

To generated fancy graphics to stdout:

$ go tool pprof [--pdf|svg|gif] ./wanderlust /path/to/cpu.pprof

Contributing

Please do not hesitate to send pull requests.

Free vs. Commercial Version

Idea

The free version includes the provisioners for loading URLs from the sitemap.xml and from a textarea. The free version implements a lot of tracking via Piwik. The tracking data will be send to my private Piwik server and of course not shared with others. There is a privacy statement in the app.

As soon as you buy (via in-app-purchase) one provisioner you'll get the commercial version. Each provisioner has a recurring monthly fee. Provisioners must be compiled into this source code so delivery of the new binary file may take some time. With the commercial version tracking is removed.

Available provisioners:

  • Google Analytics
  • Piwik
  • Any REST endpoint
  • Magento, TYPO3, Drupal, WordPress, ... (2)
  • Any other analytics service which has a data out API

(2) Module is open source but for Wanderlust integration a recurring fee is required.

License

Will change in the future.

General Public License

http://www.gnu.org/copyleft/gpl.html

Author

Cyrill Schumacher - My pgp public key

@SchumacherFM

Made in Sydney, Australia :-)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
code.google.com
p/go.crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
p/go.crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
github.com
AndrewWDeane/bullhorn
The bullhorn package provides a lightweight internal pub/sub mechanism for goroutines
The bullhorn package provides a lightweight internal pub/sub mechanism for goroutines
GeertJohan/go.incremental
package incremental provides concurency-safe incremental numbers.
package incremental provides concurency-safe incremental numbers.
GeertJohan/go.rice/embedded
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
HouzuoGuo/tiedot
Run tiedot HTTP API server, benchmarks, or embedded usage example.
Run tiedot HTTP API server, benchmarks, or embedded usage example.
HouzuoGuo/tiedot/data
Collection data file contains document data.
Collection data file contains document data.
HouzuoGuo/tiedot/db
Collection schema and index management.
Collection schema and index management.
HouzuoGuo/tiedot/gommap
Package mmap allows mapping files into memory.
Package mmap allows mapping files into memory.
HouzuoGuo/tiedot/httpapi
Collection management handlers.
Collection management handlers.
HouzuoGuo/tiedot/webcp
Prepare HTTP server for serving web control panel application.
Prepare HTTP server for serving web control panel application.
SchumacherFM/go.gzrice/embedded
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
Package embedded defines embedded data types that are shared between the go.rice package and generated code.
codegangsta/cli
Package cli provides a minimal framework for creating and organizing command line Go applications.
Package cli provides a minimal framework for creating and organizing command line Go applications.
codegangsta/negroni
Package negroni is an idiomatic approach to web middleware in Go.
Package negroni is an idiomatic approach to web middleware in Go.
daaku/go.zipexe
Package zipexe attempts to open an executable binary file as a zip file.
Package zipexe attempts to open an executable binary file as a zip file.
davecheney/profile
Package profile provides a simple way to manage runtime/pprof profiling of your Go application.
Package profile provides a simple way to manage runtime/pprof profiling of your Go application.
dgrijalva/jwt-go
Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html
Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html
dgrijalva/jwt-go/cmd/jwt
A useful example app.
A useful example app.
go-check/check
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
jessevdk/go-flags
Package flags provides an extensive command line option parser.
Package flags provides an extensive command line option parser.
juju/errgo
The errgo package provides a way to create and diagnose errors.
The errgo package provides a way to create and diagnose errors.
kardianos/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
kr/secureheader
Package secureheader adds some HTTP header fields widely considered to improve safety of HTTP requests.
Package secureheader adds some HTTP header fields widely considered to improve safety of HTTP requests.
segmentio/go-log
Simple logger similar to Go's standard logger with log level.
Simple logger similar to Go's standard logger with log level.
Generate a self-signed X.509 certificate for a TLS server.
Generate a self-signed X.509 certificate for a TLS server.
DO NOT EDIT! Code generated by ffjson <https://github.com/pquerna/ffjson> source: ./session.go DO NOT EDIT! Ups ...
DO NOT EDIT! Code generated by ffjson <https://github.com/pquerna/ffjson> source: ./session.go DO NOT EDIT! Ups ...
api
api
this package acts also as an external api to create custom provisioners
this package acts also as an external api to create custom provisioners

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL