goat

module
v0.0.0-...-915fa77 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2022 License: BSD-2-Clause

README

goat Go Application Template (goat)

Overview

The goat project (Go Application Template) is a set of Go packages that attempt to tie common application requirements together into an easy-to-use, yet scalable, application framework suited for a wide range of application types; From command-line tools to high-performance application servers. I often notice that, in building new applications, there is a common base pattern that I tend to follow - a set of core components and behaviors - which are not application specific, but which always seem to prove useful. Goat is an attempt to create an abstraction for those patterns so that future endeavours can be more focused on application specific logic.

License

The goat project is release under a BSD-style license, the contents of which are in the repo's LICENSE file.

Status

Just getting started. This project isn't likely to be useful to anyone just yet :)

API Documentation

http://godoc.org/github.com/xaevman/goat

Directories

Path Synopsis
app
genproc
genproc is a code generation tool for automatically creating pack/unpack routines which work with goat's built-in net.Protocol implementation.
genproc is a code generation tool for automatically creating pack/unpack routines which work with goat's built-in net.Protocol implementation.
gobuild
gobuild recursively searches a path for go packages with a 'BUILD' file in their directory and builds the package or application.
gobuild recursively searches a path for go packages with a 'BUILD' file in their directory and builds the package or application.
gograph
GoGraph is a command line utility which can be run interactively or as a daemon.
GoGraph is a command line utility which can be run interactively or as a daemon.
lib
buffer
Package buffer contains helper functions for writing and reading basic types into and out of byte slices.
Package buffer contains helper functions for writing and reading basic types into and out of byte slices.
console
Package console provides some VT100-like helper functions for providing a more full-featured console presentation.
Package console provides some VT100-like helper functions for providing a more full-featured console presentation.
fs
Package fs provides helper functions to assist with common operations on files and directories.
Package fs provides helper functions to assist with common operations on files and directories.
lifecycle
Package lifecycle implements a simple helper object to make synchronization of worker goroutines a little less verbose.
Package lifecycle implements a simple helper object to make synchronization of worker goroutines a little less verbose.
math
Package math includes helper objects for common math functions.
Package math includes helper objects for common math functions.
perf
Package perf exposes a centralized API for storing, tracking, and querying performance data for a Go application.
Package perf exposes a centralized API for storing, tracking, and querying performance data for a Go application.
str
Package str contains helper functions for commonly useful string operations.
Package str contains helper functions for commonly useful string operations.
time
Package time implements helper functions and objects to assist in measuring time-based tasks.
Package time implements helper functions and objects to assist in measuring time-based tasks.
mod
config
Package config presents a unified, hierarchical interface for retreiving configuration options from any registered providers.
Package config presents a unified, hierarchical interface for retreiving configuration options from any registered providers.
diag
Package diag implements functions for dumping crash information into various formats.
Package diag implements functions for dumping crash information into various formats.
goapp
Package goapp wraps many goat modules into an application abstraction, making it easy to implement fully featured applications which include common features like logging, external configuration, network communication, performance monitoring and crash handling.
Package goapp wraps many goat modules into an application abstraction, making it easy to implement fully featured applications which include common features like logging, external configuration, network communication, performance monitoring and crash handling.
log
Package log implements a standard, multi-channel logging interface.
Package log implements a standard, multi-channel logging interface.
net
Package net provides abstractions for TCP servers and clients which handle massively parallel IO and present a unified interface for implementing security and messaging protocols on top of them.
Package net provides abstractions for TCP servers and clients which handle massively parallel IO and present a unified interface for implementing security and messaging protocols on top of them.
Package proto provides common definitions for goat's built-in network protocols and message signatures.
Package proto provides common definitions for goat's built-in network protocols and message signatures.
chat
Package chat defines the various message handlers and network objects used in the test chat server and client applications.
Package chat defines the various message handlers and network objects used in the test chat server and client applications.
dbg
Package dbg implements a protocol which can be included in a goat project to enable realtime performance and diagnostic monitoring over a TCP connection.
Package dbg implements a protocol which can be included in a goat project to enable realtime performance and diagnostic monitoring over a TCP connection.

Jump to

Keyboard shortcuts

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