Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/valyala/fasttemplate
Simple and fast template engine for Go
https://github.com/valyala/fasttemplate
fast go golang placeholder template
Last synced: about 1 month ago
JSON representation
Simple and fast template engine for Go
- Host: GitHub
- URL: https://github.com/valyala/fasttemplate
- Owner: valyala
- License: mit
- Created: 2015-08-19T12:44:22.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-08-28T10:30:11.000Z (9 months ago)
- Last Synced: 2024-01-31T21:04:58.702Z (4 months ago)
- Topics: fast, go, golang, placeholder, template
- Language: Go
- Homepage:
- Size: 35.2 KB
- Stars: 788
- Watchers: 22
- Forks: 80
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go-extra - fasttemplate - 08-19T12:44:22Z|2021-01-11T18:21:27Z| (Template Engines / HTTP Clients)
- awesome-go-cn - fasttemplate
- awesome-go-zh - fasttemplate
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- go-awesome - fasttemplate - Simple and fast template engine for Go (开源类库 / 模板引擎)
- fucking-awesome-go - :octocat: fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). :star: 69 :fork_and_knife: 8 (Template Engines / Advanced Console UIs)
- awesome-go-projects - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - | - | - | (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- awesome-go-with-framework - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go-cn - fasttemplate
- zero-alloc-awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go-stars - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-stars - valyala/fasttemplate - Simple and fast template engine for Go (Go)
- awesome-go. - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (<span id="模板引擎-template-engines">模板引擎 Template Engines</span> / <span id="高级控制台用户界面-advanced-console-uis">高级控制台用户界面 Advanced Console UIs</span>)
- awesome-go-cn - fasttemplate - 简单快速的模板引擎。进行模板元素替换时,速度是[text/template](http://Golang.org/pkg/text/template/)的十倍 (模板引擎 / 高级控制台界面)
- awesome-go-with-stars - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- repo-1316-awesome-go-cn - fasttemplate
- repo-1211-awesome-go-cn - fasttemplate
- awesome-Char - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-reader - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- Go-awesome - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go-cn - fasttemplate
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- go-awesome-cn-star - fasttemplate
- awesome-go-cn - fasttemplate
- awesome-go-handwritten - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - 簡單快速的模板引擎。進行模板元素替換時,速度是[text/template](http://Golang.org/pkg/text/template/)的十倍 (模板引擎 / 高級控制台界面)
- go-awesome - fasttemplate - Simple and fast template engine for Go (Open source library / Template Engine)
- awesome-go2 - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). - :arrow_down:132 - :star:93 (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). (Template Engines / Advanced Console UIs)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go-cn - fasttemplate
- awesome-go-zh - fasttemplate
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- awesome-go - fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](https://golang.org/pkg/text/template/). (Template Engines / HTTP Clients)
- go-awesome - fasttemplate - Simple and fast template engine for Go (开源类库 / 模板引擎)
- awesome-go - fasttemplate - Simple and fast template engine for Go - ★ 226 (Template Engines)
README
fasttemplate
============Simple and fast template engine for Go.
Fasttemplate performs only a single task - it substitutes template placeholders
with user-defined values. At high speed :)Take a look at [quicktemplate](https://github.com/valyala/quicktemplate) if you need fast yet powerful html template engine.
*Please note that fasttemplate doesn't do any escaping on template values
unlike [html/template](http://golang.org/pkg/html/template/) do. So values
must be properly escaped before passing them to fasttemplate.*Fasttemplate is faster than [text/template](http://golang.org/pkg/text/template/),
[strings.Replace](http://golang.org/pkg/strings/#Replace),
[strings.Replacer](http://golang.org/pkg/strings/#Replacer)
and [fmt.Fprintf](https://golang.org/pkg/fmt/#Fprintf) on placeholders' substitution.Below are benchmark results comparing fasttemplate performance to text/template,
strings.Replace, strings.Replacer and fmt.Fprintf:```
$ go test -bench=. -benchmem
PASS
BenchmarkFmtFprintf-4 2000000 790 ns/op 0 B/op 0 allocs/op
BenchmarkStringsReplace-4 500000 3474 ns/op 2112 B/op 14 allocs/op
BenchmarkStringsReplacer-4 500000 2657 ns/op 2256 B/op 23 allocs/op
BenchmarkTextTemplate-4 500000 3333 ns/op 336 B/op 19 allocs/op
BenchmarkFastTemplateExecuteFunc-4 5000000 349 ns/op 0 B/op 0 allocs/op
BenchmarkFastTemplateExecute-4 3000000 383 ns/op 0 B/op 0 allocs/op
BenchmarkFastTemplateExecuteFuncString-4 3000000 549 ns/op 144 B/op 1 allocs/op
BenchmarkFastTemplateExecuteString-4 3000000 572 ns/op 144 B/op 1 allocs/op
BenchmarkFastTemplateExecuteTagFunc-4 2000000 743 ns/op 144 B/op 3 allocs/op
```Docs
====See http://godoc.org/github.com/valyala/fasttemplate .
Usage
=====```go
template := "http://{{host}}/?q={{query}}&foo={{bar}}{{bar}}"
t := fasttemplate.New(template, "{{", "}}")
s := t.ExecuteString(map[string]interface{}{
"host": "google.com",
"query": url.QueryEscape("hello=world"),
"bar": "foobar",
})
fmt.Printf("%s", s)// Output:
// http://google.com/?q=hello%3Dworld&foo=foobarfoobar
```Advanced usage
==============```go
template := "Hello, [user]! You won [prize]!!! [foobar]"
t, err := fasttemplate.NewTemplate(template, "[", "]")
if err != nil {
log.Fatalf("unexpected error when parsing template: %s", err)
}
s := t.ExecuteFuncString(func(w io.Writer, tag string) (int, error) {
switch tag {
case "user":
return w.Write([]byte("John"))
case "prize":
return w.Write([]byte("$100500"))
default:
return w.Write([]byte(fmt.Sprintf("[unknown tag %q]", tag)))
}
})
fmt.Printf("%s", s)// Output:
// Hello, John! You won $100500!!! [unknown tag "foobar"]
```