We should use `(*regexp.Regexp).MatchString` instead of
`(*regexp.Regexp).Match([]byte(...))` when matching string to avoid
unnecessary `[]byte` conversions and reduce allocations.
func BenchmarkMatch(b *testing.B) {
for i := 0; i < b.N; i++ {
if match := versionRe.Match([]byte("v1")); !match {
b.Fail()
}
}
}
func BenchmarkMatchString(b *testing.B) {
for i := 0; i < b.N; i++ {
if match := versionRe.MatchString("v1"); !match {
b.Fail()
}
}
}
goos: linux
goarch: amd64
pkg: go-micro.dev/v4/api/handler/event
cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics
BenchmarkMatch-16 11430127 127.4 ns/op 2 B/op 1 allocs/op
BenchmarkMatchString-16 12220628 97.54 ns/op 0 B/op 0 allocs/op
PASS
ok go-micro.dev/v4/api/handler/event 3.822s
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Remove missing gRPC example from README.md (#2112)
Delete docker.yml
Delete Dockerfile
update plugins version & remove replace (#2118)
* update memory registry plugins version & remove replace
* update plugins version & remove replace
Co-authored-by: 申法宽 <shenfakuan@163.com>
update client/grpc plugins version & remove replace (#2119)
* update memory registry plugins version & remove replace
* update plugins version & remove replace
* update plugins/client/grpc/v3 version
Co-authored-by: 申法宽 <shenfakuan@163.com>
update etcd version (#2120)
update mod version
update
update pulgin registry mod version (#2121)
* update etcd version
* update mod version
* update
fix store delete
support for tls on http plugin (#2126)
improve code quality (#2128)
* Fix inefficient string comparison
* Fix unnecessary calls to Printf
* Canonicalize header key
* Replace `t.Sub(time.Now())` with `time.Until`
* Remove unnecessary blank (_) identifier
* Remove unnecessary use of slice
* Remove unnecessary comparison with bool
Update README.md
Update README.md
remove network package
update quic go mod
remove indirects
update etcd mod version
Update registry plugins mod version (#2130)
* update etcd version
* update mod version
* update
* update etcd mod version
Update README.md
Update README.md
Update README.md
fixing etcd stack in getToken (#2145)
when provide username and password, etcd will try to get auth token from server
if server is unavailble, etcd client will stack in
when dial timeout is set, it will return err instead of stack in
Update README.md
add http demo; http client can call http server; http client can call rpc server (#2149)
Add etcd to default registries when plugin is loaded (#2150)
Co-authored-by: Andrew Jones <andrew@gotoblink.com>
Update README.md
make rpcClient compatible with 32bit arm systems (#2156)
On ARM, 386, and 32-bit MIPS, it is the caller's responsibility to
arrange for 64-bit alignment of 64-bit words accessed
atomically. Only the first word in an allocated struct can
be relied upon to be 64-bit aligned.
optimize the process of switching grpc error to micro error (#2158)
Fix util/log/log.Infof format didn't work (#2160)
Co-authored-by: Cui Gang <cuigang@yunpbx.com>
fixing string field contains invalid UTF-8 issue (#2164)
fix k8s api memory leak (#2166)
fix http No release Broker (#2167)
* Update http.go
Exit before deregister is executed
* Create http.go
Exit before deregister is executed
fix: "Solve the problem that the resources have not been fully released due to early exit" (#2168)
* Update http.go
Exit before deregister is executed
* Create http.go
Exit before deregister is executed
* Solve the problem that the resources have not been fully released due to early exit
* Optimize some code
* Optimize some code
fix service default logger (#2171)
* Update http.go
Exit before deregister is executed
* Create http.go
Exit before deregister is executed
* Solve the problem that the resources have not been fully released due to early exit
* Optimize some code
* Optimize some code
* Optimize some code
* fix service default logger
Update README.md
get k8s pod (#2173)
Update README.md
fix:field (#2176)
* get k8s pod
* fix: filed
* field
Update README.md
add rmq message properties (#2177)
Co-authored-by: dtitov <dtitov@might24.ru>
Update README.md
grpc server add RegisterCheck (#2178)
fix 404 bug (#2179)
fix undefined: err (#2181)
Add registry and config/source plugins based on nacos/v2 (#2182)
* Add registry plugins implement by nacos/v2
* Add config/source plugins implement by nacos/v2
support hystrix fallback (#2183)
Windows event log plugin (#2180)
* add rmq message properties
* eventlog start
* start eventlog
* windows event logger
* readme
* readme
Co-authored-by: dtitov <dtitov@might24.ru>
support etcd auth with env args (#2184)
* support etcd auth with env args
set default registry address with env arg instead of 127.0.0.1
* fixing MICRO_REGISTRY_ADDRESS may empty issue
update mod version
module github.com/mholt/certmagic has been renamed github.com/caddyserver/certmagic,
so upgrade on this module will fail.
fix: micro/micro#835
caddyserver/certmagic@v0.10.6 is Maximum upgradeable version with go version 1.13
Higher version use *tls.ClientHelloInfo.SupportsCertificate which only supported in go 1.14
* api/router: avoid unneeded loops and fix path match
* if match found in google api path syntax, not try pcre loop
* if path is not ending via $ sign, append it to pcre to avoid matching other strings like
/api/account/register can be matched to /api/account
* api: add tests and validations
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
* copy qson from https://github.com/joncalhoun/qson
as author not want to maintain repo
* latest code contains our fix to proper decode strings
with escaped & symbol
* replace package in api/handler/rpc
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>