Code Monkey home page Code Monkey logo

goapache's Introduction

Go-Apache

Documentation
GoDoc

A library to build Apache Modules with Go. With examples!

Create Apache Portable Runtime module using Go

What is an Apache Module?

If you have never heard of an Apache Module, I would do a quick web search to familiarize yourself.

Why would I want to build an Apache Module with Go?

Go is amazing at writing performant webservers however there are some features (security, logging, metrics, etc..) for which it makes more sense to use a proxy server. In these cases you are likely going to use Nginx or Apache to sit infront of your Go app.

If you use Apache, you are going to configure the application to use multiple modules, one of which could be your custom module!

When should you develop an Apache Module (in Go, or at all)?

Apache Modules are highly performant and configurable pieces of a larger webserver.

Apache Modules natively support shared resources, memory management, and a multiprocessing strategy for parallel execution of requests (see Apache MPM Worker).

Development

The goapache package support handling and processing Apache server request objects.

goapache

mod_goapache_example

  • configure.go
    • Contains directive handlers for processing the module.conf configuration
  • directives.go
    • Exports the directives symbol to the shared object.
    • Registers the directive handlers.
  • handler.go
    • Exports the handler symbol to the shared object.
    • Handles incoming Apache requests.
  • hooks.go
    • Exports the hooks symbol to the shared object.
    • Registers Apache Hooks on the module.
  • initialize.go
    • Exports the initialize symbol to the shared object.
  • module.go
    • Exports the mod_goapache_example to the shared object.
    • Referenced by the Apache Module configuration (RHEL)

goapache's People

Contributors

garrettsickles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.