{"id":4010861,"name":"github.com/lyrictian/iris","ecosystem":"go","description":"Package iris is a fully-featured HTTP/2 backend web framework written entirely in Google’s Go Language.\n\nSource code and other details for the project are available at GitHub:\n\nThe only requirement is the Go Programming Language, at least version 1.8\n\nExample code:\n\nAll HTTP methods are supported, developers can also register handlers for same paths for different methods.\nThe first parameter is the HTTP Method,\nsecond parameter is the request path of the route,\nthird variadic parameter should contains one or more context.Handler executed\nby the registered order when a user requests for that specific resouce path from the server.\n\nExample code:\n\nIn order to make things easier for the user, Iris provides functions for all HTTP Methods.\nThe first parameter is the request path of the route,\nsecond variadic parameter should contains one or more context.Handler executed\nby the registered order when a user requests for that specific resouce path from the server.\n\nExample code:\n\nA set of routes that are being groupped by path prefix can (optionally) share the same middleware handlers and template layout.\nA group can have a nested group too.\n\n`.Party` is being used to group routes, developers can declare an unlimited number of (nested) groups.\n\nExample code:\n\nIris developers are able to register their own handlers for http statuses like 404 not found, 500 internal server error and so on.\n\nExample code:\n\nWith the help of Iris's expressionist router you can build any form of API you desire, with\nsafety.\n\nExample code:\n\nAt the previous example,\nwe've seen static routes, group of routes, subdomains, wildcard subdomains, a small example of parameterized path\nwith a single known paramete and custom http errors, now it's time to see wildcard parameters and macros.\n\nIris, like net/http std package registers route's handlers\nby a Handler, the Iris' type of handler is just a func(ctx context.Context)\nwhere context comes from github.com/kataras/iris/context.\nUntil go 1.9 you will have to import that package too, after go 1.9 this will be not be necessary.\n\nIris has the easiest and the most powerful routing process you have ever meet.\n\nAt the same time,\nIris has its own interpeter(yes like a programming language)\nfor route's path syntax and their dynamic path parameters parsing and evaluation,\nI am calling them \"macros\" for shortcut.\nHow? It calculates its needs and if not any special regexp needed then it just\nregisters the route with the low-level path syntax,\notherwise it pre-compiles the regexp and adds the necessary middleware(s).\n\nStandard macro types for parameters:\n\nif type is missing then parameter's type is defaulted to string, so\n{param} == {param:string}.\n\nIf a function not found on that type then the \"string\"'s types functions are being used.\ni.e:\n\nBesides the fact that Iris provides the basic types and some default \"macro funcs\"\nyou are able to register your own too!.\n\nRegister a named path parameter function:\n\nat the func(argument ...) you can have any standard type, it will be validated before the server starts\nso don't care about performance here, the only thing it runs at serve time is the returning func(paramValue string) bool.\n\nExample code:\n\nA path parameter name should contain only alphabetical letters, symbols, containing '_' and numbers are NOT allowed.\nIf route failed to be registered, the app will panic without any warnings\nif you didn't catch the second return value(error) on .Handle/.Get....\n\nLast, do not confuse ctx.Values() with ctx.Params().\nPath parameter's values goes to ctx.Params() and context's local storage\nthat can be used to communicate between handlers and middleware(s) goes to\nctx.Values(), path parameters and the rest of any custom values are separated for your own good.\n\nRun\n\nStatic Files\n\nExample code:\n\nMore examples can be found here: https://github.com/kataras/iris/tree/master/_examples/beginner/file-server\n\nMiddleware is just a concept of ordered chain of handlers.\nMiddleware can be registered globally, per-party, per-subdomain and per-route.\n\nExample code:\n\nIris is able to wrap and convert any external, third-party Handler you used to use to your web application.\nLet's convert the https://github.com/rs/cors net/http external middleware which returns a `next form` handler.\n\nExample code:\n\nIris supports 5 template engines out-of-the-box, developers can still use any external golang template engine,\nas `context.ResponseWriter()` is an `io.Writer`.\n\nAll of these five template engines have common features with common API,\nlike Layout, Template Funcs, Party-specific layout, partial rendering and more.\n\nExample code:\n\nView engine supports bundled(https://github.com/jteeuwen/go-bindata) template files too.\ngo-bindata gives you two functions, asset and assetNames,\nthese can be setted to each of the template engines using the `.Binary` func.\n\nExample code:\n\nA real example can be found here: https://github.com/kataras/iris/tree/master/_examples/intermediate/view/embedding-templates-into-app.\n\nEnable auto-reloading of templates on each request. Useful while developers are in dev mode\nas they no neeed to restart their app on every template edit.\n\nExample code:\n\nEach one of these template engines has different options located here: https://github.com/kataras/iris/tree/master/view .\n\nThis example will show how to store and access data from a session.\n\nYou don’t need any third-party library,\nbut If you want you can use any session manager compatible or not.\n\nIn this example we will only allow authenticated users to view our secret message on the /secret page.\nTo get access to it, the will first have to visit /login to get a valid session cookie,\nwhich logs him in. Additionally he can visit /logout to revoke his access to our secret message.\n\nExample code:\n\nRunning the example:\n\nBut you should have a basic idea of the framework by now, we just scratched the surface.\nIf you enjoy what you just saw and want to learn more, please follow the below links:\n\nExamples:\n\nBuilt'n Middleware:\n\nCommunity Middleware:\n\nHome Page:","homepage":"https://github.com/lyrictian/iris","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/lyrictian/iris","keywords_array":[],"namespace":"github.com/lyrictian","versions_count":1,"first_release_published_at":"2017-06-16T23:54:17.000Z","latest_release_published_at":"2017-06-16T23:54:17.000Z","latest_release_number":"v0.0.0-20170616235417-20f30022705b","last_synced_at":"2026-04-25T10:21:45.348Z","created_at":"2022-04-12T08:35:04.924Z","updated_at":"2026-04-25T10:21:45.350Z","registry_url":"https://pkg.go.dev/github.com/lyrictian/iris","install_command":"go get github.com/lyrictian/iris","documentation_url":"https://pkg.go.dev/github.com/lyrictian/iris#section-documentation","metadata":{},"repo_metadata":{"id":57610322,"uuid":"95406751","full_name":"LyricTian/iris","owner":"LyricTian","description":"[ACQUIRED] The fastest web framework for Go in (THIS) Earth. HTTP/2 Ready-To-GO.","archived":false,"fork":true,"pushed_at":"2017-06-19T18:19:20.000Z","size":13176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-09T05:33:29.188Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://iris-go.com","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"kataras/iris","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LyricTian.png","metadata":{},"created_at":"2017-06-26T03:54:40.000Z","updated_at":"2017-06-26T03:54:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LyricTian/iris","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LyricTian/iris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LyricTian","download_url":"https://codeload.github.com/LyricTian/iris/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005461,"owners_count":26083902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"LyricTian","name":"Lyric","uuid":"9126334","kind":"user","description":"Stay hungry,stay foolish.","email":"","website":null,"location":"China","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/9126334?v=4","repositories_count":308,"last_synced_at":"2023-03-05T14:23:09.886Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/LyricTian","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T17:41:37.334Z","updated_at":"2023-03-05T14:23:09.888Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LyricTian","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LyricTian/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-10-10T22:28:33.662Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.345852080216646,"dependent_packages_count":6.999148183520997,"stargazers_count":null,"forks_count":null,"average":8.172500131868823},"purl":"pkg:golang/github.com/lyrictian/iris","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/lyrictian/iris","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/lyrictian/iris","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/lyrictian/iris/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-01T09:05:57.155Z","issues_count":0,"pull_requests_count":0,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":0,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyricTian%2Firis/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flyrictian%2Firis/codemeta","maintainers":[]}