Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/steambap/captcha

:sunglasses:Package captcha provides an easy to use, unopinionated API for captcha generation
https://github.com/steambap/captcha

captcha captcha-generator golang golang-library image-captcha

Last synced: about 2 months ago
JSON representation

:sunglasses:Package captcha provides an easy to use, unopinionated API for captcha generation

Awesome Lists containing this project

README

        

> Package captcha provides an easy to use, unopinionated API for captcha generation.

[![PkgGoDev](https://pkg.go.dev/badge/github.com/steambap/captcha)](https://pkg.go.dev/github.com/steambap/captcha)
[![Build Status](https://github.com/steambap/captcha/workflows/CI/badge.svg)](https://github.com/steambap/captcha/actions?workflow=CI)
[![codecov](https://codecov.io/gh/steambap/captcha/branch/main/graph/badge.svg)](https://codecov.io/gh/steambap/captcha)
[![Go Report Card](https://goreportcard.com/badge/github.com/steambap/captcha)](https://goreportcard.com/report/github.com/steambap/captcha)

## Why another captcha generator?
I want a simple and framework-independent way to generate captcha. It also should be flexible, at least allow me to pick my favorite font.

## install
```
go get github.com/steambap/captcha
```

## usage
```Go
func handle(w http.ResponseWriter, r *http.Request) {
// create a captcha of 150x50px
data, _ := captcha.New(150, 50)

// session come from other library such as gorilla/sessions
session.Values["captcha"] = data.Text
session.Save(r, w)
// send image data to client
data.WriteImage(w)
}

```

[documentation](https://pkg.go.dev/github.com/steambap/captcha) |
[example](example/basic/main.go) |
[font example](example/load-font/main.go)

## sample image
![image](example/captcha.png)

![image](example/captcha-math.png)

## Compatibility

This package uses embed package from Go 1.16. If for some reasons you have to use pre 1.16 version of Go, reference pre 1.4 version of this module in your go.mod.

## Contributing
If your found a bug, please contribute!
see [contributing.md](contributing.md) for more detail.

## License
[MIT](LICENSE)