go-wildcard alternatives and similar packages
Based on the "Specific Formats" category.
Alternatively, view go-wildcard alternatives based on common mentions on social networks and blogs.
-
bluemonday
bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS -
html-to-markdown
โ๏ธ Convert HTML to Markdown. Even works with entire websites and can be extended through rules. -
omniparser
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc. -
mxj
Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. -
go-pkg-rss
DISCONTINUED. This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. -
goq
A declarative struct-tag-based HTML unmarshaling or scraping package for Go built on top of the goquery library -
gospider
DISCONTINUED. โก Light weight Golang spider framework | ่ฝป้็ Golang ็ฌ่ซๆกๆถ [GET https://api.github.com/repos/zhshch2002/gospider: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository] -
go-pkg-xmlx
DISCONTINUED. Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. -
github_flavored_markdown
GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. -
pagser
Pagser is a simple, extensible, configurable parse and deserialize html page to struct based on goquery and struct tags for golang crawler -
csvplus
csvplus extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins.
InfluxDB high-performance time series database

Do you think we are missing an alternative of go-wildcard or a related project?
README
Go-wildcard
Go-wildcard is forked from Minio project
https://github.com/minio/minio/tree/master/pkg/wildcard
Why
This part of Minio project is a very cool, fast and light wildcard pattern matching.
Originally the purpose of this fork is to give access to this "lib" under Apache license, without import the entire Minio project ...
Two function are available MatchSimple
and Match
MatchSimple
only covert*
usage (he is a bit faster)Match
support full wildcard matching,*
and?
I know Regex, but this is a big part, and it is slow (even prepared regex) ...
I know Glob, but most of the time, I only need simple wildcard matching.
This library remains under Apache License Version 2.0, but MinIO project is migrated to GNU Affero General Public License 3.0 or later from https://github.com/minio/minio/commit/069432566fcfac1f1053677cc925ddafd750730a
How to
โ ๏ธ WARNING: Unlike the GNU "libc", this library has no equivalent to "FNM_FILE_NAME". To do this you can use "path/filepath" https://pkg.go.dev/path/filepath#Glob
Using this fork
go get github.com/IGLOU-EU/go-wildcard@latest
Using Official Minio (GNU Affero General Public License 3.0 or later)
From https://github.com/minio/minio/commit/81d5688d5684bd4d93e7bb691af8cf555a20c28c the minio pkg are moved to https://github.com/minio/pkg
go get github.com/minio/pkg/wildcard@latest
Quick Example
This example shows a Go file which pattern matching ...
package main
import (
"fmt"
wildcard "github.com/IGLOU-EU/go-wildcard"
)
func main() {
str := "daaadabadmanda"
pattern := "da*da*da*"
result := wildcard.MatchSimple(pattern, str)
fmt.Println(str, pattern, result)
pattern = "?a*da*d?*"
result = wildcard.Match(pattern, str)
fmt.Println(str, pattern, result)
}
*Note that all licence references and agreements mentioned in the go-wildcard README section above
are relevant to that project's source code only.