Falcore

Modular HTTP server framework for Go
Alternatives To Falcore
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Httpx4,57954 days ago59July 31, 202217mitGo
httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.
Script3,483223 months ago37June 02, 202230mitGo
Making it easy to write shell-like scripts in Go
Falcore464
9 years agoMarch 13, 20125mitGo
Modular HTTP server framework for Go
Blaze32627a month ago60August 29, 202184apache-2.0Scala
Blazing fast NIO microframework and Http Parser
Sasila264
3 years ago17December 13, 20171apache-2.0Python
一个灵活、友好的爬虫框架
Mallet227
20 days ago11Java
Mallet is an intercepting proxy for arbitrary protocols
File.d209
3 days ago34August 09, 202235bsd-3-clauseGo
A blazing fast tool for building data pipelines: read, process and output events. Our community: https://t.me/file_d_community
Httpit170
a month ago9May 07, 20216mitGo
A rapid http(s) benchmark tool written in Go
Http Request Plugin147
515 days ago25March 23, 20175mitJava
This plugin does a request to an url with some parameters.
Kestrelapp100
3 months agomitC#
基于Kestrel的网络编程应用示例
Alternatives To Falcore
Select To Compare


Alternative Project Comparisons
Readme

Falcore has Moved

Fitstar Falcore »

The Fitstar fork has tons of updates that break backwards compatibility so we are leaving this repo live for reference of the older interfaces. It will no longer be maintained here, though so you should upgrade to the Fitstar fork.

Falcore

Falcore is a framework for constructing high performance, modular HTTP servers in Golang.

Read more on our blog »

GoPkgDoc hosts code documentation for this project.

Features

  • Modular and flexible design
  • Hot restart hooks for zero-downtime deploys
  • Builtin statistics framework
  • Builtin logging framework

Design

Falcore is a filter pipeline based HTTP server library. You can build arbitrarily complicated HTTP services by chaining just a few simple components:

  • RequestFilters are the core component. A request filter takes a request and returns a response or nil. Request filters can modify the request as it passes through.
  • ResponseFilters can modify a response on its way out the door. An example response filter, compression_filter, is included. It applies deflate or gzip compression to the response if the request supplies the proper headers.
  • Pipelines form one of the two logic components. A pipeline contains a list of RequestFilters and a list of ResponseFilters. A request is processed through the request filters, in order, until one returns a response. It then passes the response through each of the response filters, in order. A pipeline is a valid RequestFilter.
  • Routers allow you to conditionally follow different pipelines. A router chooses from a set of pipelines. A few basic routers are included, including routing by hostname or requested path. You can implement your own router by implementing falcore.Router. Routers are not RequestFilters, but they can be put into pipelines.

Building

Falcore is currently targeted at Go 1.0. If you're still using Go r.60.x, you can get the last working version of falcore for r.60 using the tag last_r60.

Check out the project into $GOROOT/src/pkg/github.com/ngmoco/falcore. Build using the go build command.

Usage

See the examples directory for usage examples.

HTTPS

To use falcore to serve HTTPS, simply call ListenAndServeTLS instead of ListenAndServe. If you want to host SSL and nonSSL out of the same process, simply create two instances of falcore.Server. You can give them the same pipeline or share pipeline components.

Maintainers

Contributors

Popular Http Projects
Popular Pipeline Projects
Popular Networking Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Http
Pipeline
Router