kataras on master
examples: minor (see previous c… (compare)
kataras on master
examples: server-sent events: a… (compare)
kataras on master
minor (compare)
kataras on master
fix https://github.com/kataras/… (compare)
kataras on master
minor (see previous commit) (compare)
kataras on master
minor (see previous commit) (compare)
kataras on master
minor (see previous commit) (compare)
kataras on master
New feature: Context.ReadJSONSt… (compare)
kataras on master
New feature: Fallback views. Re… (compare)
kataras on master
thank you @mattbowen for your k… (compare)
kataras on master
thank you @always-waiting for y… (compare)
kataras on master
README: minor (compare)
kataras on master
Update README_ZH.md Merge pull request #1707 from w… (compare)
kataras on master
udpate modifyProxiedRequest Merge pull request #1710 from t… (compare)
I am sorry for not pushing new commits to Iris, I'm designing a custom JWT parser as the existing solutions do not fit the usage and the minimum performance cost when using JWT in requests we require for Iris.
@kataras
sounds interesting,
as it was explained before about our new startup , I'll eager to know about your advices and suggestions .
we have used OpenCV with C++ , iris ♥️ , redis , dgraph.io and RSA and JWT encrypted and signed so every critical information encrypted.
everybody can take a look . And I'm looking forward to hear about your advices ,
It will be our honor and reputation.
https://irisdev.net
@all
another problem is our servers located in Iran, so network is unreliable, if you have any idea about server sponsorship to relocate them, I'll be thank full.
About that, can you explain more, what do you mena by "server sponsporship"? You want a hosting company to host your app, why not go with Digital Ocean?
The first results of the JWT packages benchmarks:
Comparison between: kataras/jwt, dgrijalva/jwt-go and go-jose/go-jose.
BenchmarkSign_Map 324322 3534 ns/op 1904 B/op 30 allocs/op
BenchmarkSign_Struct 446637 2653 ns/op 1344 B/op 21 allocs/op
BenchmarkSign_jwt_go_Map 233316 5161 ns/op 3057 B/op 50 allocs/op
BenchmarkSign_jwt_go_Struct 299694 3994 ns/op 2289 B/op 35 allocs/op
BenchmarkSign_jwt_go_Struct2 307395 3855 ns/op 2209 B/op 35 allocs/op
BenchmarkSign_go_jose_Map 151389 7927 ns/op 5299 B/op 85 allocs/op
BenchmarkSign_go_jose_Struct 109213 10932 ns/op 6692 B/op 108 allocs/op
BenchmarkVerify 363290 3334 ns/op 1536 B/op 22 allocs/op
BenchmarkVerify_jwt_go 176756 6819 ns/op 3656 B/op 66 allocs/op
BenchmarkVerify_go_jose 122252 9902 ns/op 6104 B/op 85 allocs/op
The repository is finally public now: https://github.com/kataras/jwt, please check it out i'm waiting for your feedback!
Benchmarks: open, just cd _benchmarks && go test -v -bench=.
Test Coverage: 92% (!)
Documentation: Full
JWE support: not yet
Hello @Ja7adR,
We have almost 200 examples, there is no a single example of :param
or *iris.Context
. Please check: https://iris-go.com/docs and https://github.com/kataras/iris/tree/master/_examples/routing.
router.Get("/demo/{pid:int}", ProductDemo.Product)
Your handler must accept iris.Context
NOT *iris.Context
:
func Product(ctx iris.Context) {
// ...
}
@lihaotian0607 what is this my friend?
Is there a ready method for iris?
Just like express in Nodejs:
app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) })
Hello @BlackHole1,
Literally with Iris it's app.Listen
too :) Check: https://iris-go.com/docs and the examples.
app.Listen(":8080")
Hello @Gera-coder, iris.Compression is there. You just need to follow the Installation section or watch the mini gif on how to install and run Iris: https://github.com/kataras/iris#-learning-iris.
In-short, I assume you're using an older version of Iris. You just need to open a terminal in your current project and execute:go get github.com/kataras/iris/v12@master
OnRoomJoin
and remove fromOnRoomLeave
. You can find a similar example (collects users per namespace) here. Also can you tell me what was that layerpanel site you posted above?
func (c *Conn) Get(key string) interface{} {
c.storeMutex.RLock()
if c.store != nil {
if v, ok := c.store[key]; ok {
c.storeMutex.RUnlock()
if v == nil {
return nil
}
return v
}
}
c.storeMutex.RUnlock()
return nil
}
func (c *Conn) Get(key string) interface{} {
c.storeMutex.RLock()
defer c.storeMutex.RUnlock()
if c.store == nil {
return nil
}
return c.store[key]
}
defer
is not optimization, it has a performance cost, that's why I am not using it there.
@kataras Although, he does have a point about the comparison of
v
-- if it'snil
you returnnil
? You could have just returned it anyways.
He has a point to be honest, but my eye stucked on that "defer" one. I was thinking to support an error of key found but nil entry (e.g. map["key"] = nil interface) when I designed that conn's Get, but then I decided that was not necessary and the code was like that. I'll re-format it, although, to be realistic it does not cost anything and also the Conn.Set/Get is only for pure neffos users, iris users mostly use the iris.Context.Values().Set/Get to store request values.
Here it's:
func (c *Conn) Get(key string) interface{} {
c.storeMutex.RLock()
if c.store == nil {
c.storeMutex.RUnlock()
return nil
}
v := c.store[key]
c.storeMutex.RUnlock()
return v
}
Hello @Ja7adR,
We have almost 200 examples, there is no a single example of
:param
or*iris.Context
. Please check: https://iris-go.com/docs and https://github.com/kataras/iris/tree/master/_examples/routing.router.Get("/demo/{pid:int}", ProductDemo.Product)
Your handler must accept
iris.Context
NOT*iris.Context
:func Product(ctx iris.Context) { // ... }
thank you
guys i have problem with url params , i use this mode in gin gonic work it without problem but in Iris on get I received Not Found
, this is parameter /validate=:lic
or /validate={lic:string}
or /?validate=:lic
sample 127.0.0.1:8080/validate=123456
code router.Get("/validate/:lic", src.GetLicense)
@kataras Bro I don't have $ money for donate can i get book other edition for gift? i ago time request for Iris book pdf (https://bit.ly/iris-req-book)
Hello @Ja7adR, this is the old link, the new one is: https://www.iris-go.com/#ebookDonateForm but no problem, send me your GitHub username, I am sure we will find a way you can support Iris without $$.