github.com/gofiber/fiber/v2@v2.47.0/.github/README_ckb.md (about) 1 <p align="center"> 2 <a href="https://gofiber.io"> 3 4 <picture> 5 <source height="125" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo-dark.svg"> 6 <img height="125" alt="Fiber" src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo.svg"> 7 </picture> 8 9 </a> 10 <br> 11 <!-- base64 flags are available at https://www.phoca.cz/cssflags/ --> 12 <a href="https://github.com/gofiber/fiber/blob/master/.github/README.md"> 13 <img height="20px" src="https://img.shields.io/badge/EN-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjAgMzAiIGhlaWdodD0iNjAwIj4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJ0Ij4NCjxwYXRoIGQ9Im0zMCwxNWgzMHYxNXp2MTVoLTMwemgtMzB2LTE1enYtMTVoMzB6Ii8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPHBhdGggZmlsbD0iIzAwMjQ3ZCIgZD0ibTAsMHYzMGg2MHYtMzB6Ii8+DQo8cGF0aCBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNiIgZD0ibTAsMGw2MCwzMG0wLTMwbC02MCwzMCIvPg0KPHBhdGggc3Ryb2tlPSIjY2YxNDJiIiBzdHJva2Utd2lkdGg9IjQiIGQ9Im0wLDBsNjAsMzBtMC0zMGwtNjAsMzAiIGNsaXAtcGF0aD0idXJsKCN0KSIvPg0KPHBhdGggc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEwIiBkPSJtMzAsMHYzMG0tMzAtMTVoNjAiLz4NCjxwYXRoIHN0cm9rZT0iI2NmMTQyYiIgc3Ryb2tlLXdpZHRoPSI2IiBkPSJtMzAsMHYzMG0tMzAtMTVoNjAiLz4NCjwvc3ZnPg0K"> 14 </a> 15 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ru.md"> 16 <img height="20px" src="https://img.shields.io/badge/RU-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NTAgMzAwIj4NCjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0wLDBoNDUwdjEwMGgtNDUweiIvPg0KPHBhdGggZmlsbD0iIzAwZiIgZD0ibTAsMTAwaDQ1MHYxMDBoLTQ1MHoiLz4NCjxwYXRoIGZpbGw9IiNmMDAiIGQ9Im0wLDIwMGg0NTB2MTAwaC00NTB6Ii8+DQo8L3N2Zz4NCg=="> 17 </a> 18 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_es.md"> 19 <img height="20px" src="https://img.shields.io/badge/ES-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NTAgNTAwIj4NCjxwYXRoIGZpbGw9IiNjNjBiMWUiIGQ9Im0wLDBoNzUwdjUwMGgtNzUweiIvPg0KPHBhdGggZmlsbD0iI2ZmYzQwMCIgZD0ibTAsMTI1aDc1MHYyNTBoLTc1MHoiLz4NCjwvc3ZnPg0K"> 20 </a> 21 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ja.md"> 22 <img height="20px" src="https://img.shields.io/badge/JA-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj4NCjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0wLDBoOTAwdjYwMGgtOTAweiIvPg0KPGNpcmNsZSBmaWxsPSIjYmUwMDI2IiBjeD0iNDUwIiBjeT0iMzAwIiByPSIxODAiLz4NCjwvc3ZnPg0K"> 23 </a> 24 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_pt.md"> 25 <img height="20px" src="https://img.shields.io/badge/PT-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHJlY3QgeT0iODUuMzM3IiBzdHlsZT0iZmlsbDojRDgwMDI3OyIgd2lkdGg9IjUxMiIgaGVpZ2h0PSIzNDEuMzI2Ii8+Cjxwb2x5Z29uIHN0eWxlPSJmaWxsOiM2REE1NDQ7IiBwb2ludHM9IjE5Ni42NDEsODUuMzM3IDE5Ni42NDEsMjYxLjU2NSAxOTYuNjQxLDQyNi42NjMgMCw0MjYuNjYzIDAsODUuMzM3ICIvPgo8Y2lyY2xlIHN0eWxlPSJmaWxsOiNGRkRBNDQ7IiBjeD0iMTk2LjY0MSIgY3k9IjI1NiIgcj0iNjQiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0Q4MDAyNzsiIGQ9Ik0xNjAuNjM4LDIyNHY0MC4wMDFjMCwxOS44ODIsMTYuMTE4LDM2LDM2LDM2czM2LTE2LjExOCwzNi0zNlYyMjRIMTYwLjYzOHoiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0YwRjBGMDsiIGQ9Ik0xOTYuNjM4LDI3NmMtNi42MTcsMC0xMi01LjM4My0xMi0xMnYtMTZoMjQuMDAxdjE2QzIwOC42MzgsMjcwLjYxNiwyMDMuMjU0LDI3NiwxOTYuNjM4LDI3NnoiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg=="> 26 </a> 27 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_zh-CN.md"> 28 <img height="20px" src="https://img.shields.io/badge/CN-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAwIDgwMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPHBhdGggZmlsbD0iI2RlMjkxMCIgZD0ibTAsMGgxMjAwdjgwMGgtMTIwMHoiLz4NCjxwYXRoIGZpbGw9IiNmZmRlMDAiIGQ9Im0tMTYuNTc5Niw5OS42MDA3bDIuMzY4Ni04LjEwMzItNi45NTMtNC43ODgzIDguNDM4Ni0uMjUxNCAyLjQwNTMtOC4wOTI0IDIuODQ2Nyw3Ljk0NzkgOC40Mzk2LS4yMTMxLTYuNjc5Miw1LjE2MzQgMi44MTA2LDcuOTYwNy02Ljk3NDctNC43NTY3LTYuNzAyNSw1LjEzMzF6IiB0cmFuc2Zvcm09Im1hdHJpeCg5LjkzMzUyIC4yNzc0NyAtLjI3NzQ3IDkuOTMzNTIgMzI0LjI5MjUgLTY5NS4yNDE1KSIvPg0KPHBhdGggZmlsbD0iI2ZmZGUwMCIgaWQ9InN0YXIiIGQ9Im0zNjUuODU1MiwzMzIuNjg5NWwyOC4zMDY4LDExLjM3NTcgMTkuNjcyMi0yMy4zMTcxLTIuMDcxNiwzMC40MzY3IDI4LjI1NDksMTEuNTA0LTI5LjU4NzIsNy40MzUyLTIuMjA5NywzMC40MjY5LTE2LjIxNDItMjUuODQxNS0yOS42MjA2LDcuMzAwOSAxOS41NjYyLTIzLjQwNjEtMTYuMDk2OC0yNS45MTQ4eiIvPg0KPGcgZmlsbD0iI2ZmZGUwMCI+DQo8cGF0aCBkPSJtNTE5LjA3NzksMTc5LjMxMjlsLTMwLjA1MzQtNS4yNDE4LTE0LjM5NDUsMjYuODk3Ni00LjMwMTctMzAuMjAyMy0zMC4wMjkzLTUuMzc4MSAyNy4zOTQ4LTEzLjQyNDItNC4xNjQ3LTMwLjIyMTUgMjEuMjMyNiwyMS45MDU3IDI3LjQ1NTQtMTMuMjk5OC0xNC4yNzIzLDI2Ljk2MjcgMjEuMTMzMSwyMi4wMDE3eiIvPg0KPHBhdGggZD0ibTQ1NS4yNTkyLDMxNS45Nzk1bDkuMzczNC0yOS4wMzE0LTI0LjYzMjUtMTcuOTk3OCAzMC41MDctLjA1NjYgOS41MDUtMjguOTg4NiA5LjQ4MSwyOC45OTY0IDMwLjUwNywuMDgxOC0yNC42NDc0LDE3Ljk3NzQgOS4zNDkzLDI5LjAzOTItMjQuNzE0LTE3Ljg4NTgtMjQuNzI4OCwxNy44NjUzeiIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjc3RhciIgdHJhbnNmb3JtPSJtYXRyaXgoLjk5ODYzIC4wNTIzNCAtLjA1MjM0IC45OTg2MyAxOS40MDAwNSAtMzAwLjUzNjgxKSIvPg0KPC9zdmc+DQo="> 29 </a> 30 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_zh-TW.md"> 31 <img height="20px" src="https://img.shields.io/badge/TW-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmc+DQo8c3ZnIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIiB2aWV3Qm94PSItNjAgLTQwIDI0MCAxNjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgPHJlY3QgeD0iLTYwIiB5PSItNDAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZTAwMDAiLz4NCiAgIDxyZWN0IHg9Ii02MCIgeT0iLTQwIiB3aWR0aD0iNTAlIiBoZWlnaHQ9IjUwJSIgZmlsbD0iIzAwMDA5NSIvPg0KICAgPHBhdGggaWQ9ImZvdXJfcmF5cyIgZD0iTSA4LDAgTCAwLDMwIEwgLTgsMCBMIDAsLTMwIE0gMCw4IEwgMzAsMCBMIDAsLTggTCAtMzAsMCIgZmlsbD0iI2ZmZiIvPg0KICAgPHVzZSB4bGluazpocmVmPSIjZm91cl9yYXlzIiB0cmFuc2Zvcm09InJvdGF0ZSgzMCkiLz4NCiAgIDx1c2UgeGxpbms6aHJlZj0iI2ZvdXJfcmF5cyIgdHJhbnNmb3JtPSJyb3RhdGUoNjApIi8+DQogICA8Y2lyY2xlIHI9IjE3IiBmaWxsPSIjMDAwMDk1Ii8+DQogICA8Y2lyY2xlIHI9IjE1IiBmaWxsPSIjZmZmIi8+DQo8L3N2Zz4="> 32 </a> 33 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_de.md"> 34 <img height="20px" src="https://img.shields.io/badge/DE-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgdmlld0JveD0iMCAwIDUgMyI+DQo8cGF0aCBkPSJtMCwwaDV2M2gtNXoiLz4NCjxwYXRoIGZpbGw9IiNkMDAiIGQ9Im0wLDFoNXYyaC01eiIvPg0KPHBhdGggZmlsbD0iI2ZmY2UwMCIgZD0ibTAsMmg1djFoLTV6Ii8+DQo8L3N2Zz4NCg=="> 35 </a> 36 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_nl.md"> 37 <img height="20px" src="https://img.shields.io/badge/NL-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNjAwIiB2aWV3Qm94PSIwIDAgOSA2Ij4NCjxwYXRoIGZpbGw9IiMyMTQ2OGIiIGQ9Im0wLDBoOXY2aC05eiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMGg5djRoLTl6Ii8+DQo8cGF0aCBmaWxsPSIjYWUxYzI4IiBkPSJtMCwwaDl2MmgtOXoiLz4NCjwvc3ZnPg0K"> 38 </a> 39 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ko.md"> 40 <img height="20px" src="https://img.shields.io/badge/KO-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNjAwIiB2aWV3Qm94PSItMzYgLTI0IDcyIDQ4IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtLTM2LTI0aDcydjQ4aC03MnoiLz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KC41NTQ3IC0uODMyMDUgLjgzMjA1IC41NTQ3IDAgMCkiPg0KPGcgaWQ9ImIyIj4NCjxwYXRoIHN0cm9rZT0iIzAwMCIgaWQ9ImIiIHN0cm9rZS13aWR0aD0iMiIgZD0iTS02LTI1SDZNLTYtMjJINk0tNi0xOUg2Ii8+DQo8dXNlIHk9IjQ0IiB4bGluazpocmVmPSIjYiIvPg0KPC9nPg0KPHBhdGggc3Ryb2tlPSIjZmZmIiBkPSJtMCwxN3YxMCIvPg0KPGNpcmNsZSBmaWxsPSIjYzYwYzMwIiByPSIxMiIvPg0KPHBhdGggZmlsbD0iIzAwMzQ3OCIgZD0iTTAtMTJBNiw2IDAgMCAwIDAsMEE2LDYgMCAwIDEgMCwxMkExMiwxMiAwIDAsMSAwLTEyWiIvPg0KPC9nPg0KPGcgdHJhbnNmb3JtPSJtYXRyaXgoLS41NTQ3IC0uODMyMDUgLjgzMjA1IC0uNTU0NyAwIDApIj4NCjx1c2UgeGxpbms6aHJlZj0iI2IyIi8+DQo8cGF0aCBzdHJva2U9IiNmZmYiIGQ9Im0wLTIzLjV2M20wLDM3LjV2My41bTAsM3YzIi8+DQo8L2c+DQo8L3N2Zz4NCg=="> 41 </a> 42 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_fr.md"> 43 <img height="20px" src="https://img.shields.io/badge/FR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj4NCjxwYXRoIGZpbGw9IiNlZDI5MzkiIGQ9Im0wLDBoOTAwdjYwMGgtOTAweiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMGg2MDB2NjAwaC02MDB6Ii8+DQo8cGF0aCBmaWxsPSIjMDAyMzk1IiBkPSJtMCwwaDMwMHY2MDBoLTMwMHoiLz4NCjwvc3ZnPg0K"> 44 </a> 45 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_tr.md"> 46 <img height="20px" src="https://img.shields.io/badge/TR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDM2MCAyNDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCjxwYXRoIGZpbGw9IiNlMzBhMTciIGQ9Im0wLDBoMzYwdjI0MGgtMzYweiIvPg0KPGNpcmNsZSBmaWxsPSIjZmZmIiBjeD0iMTIwIiBjeT0iMTIwIiByPSI2MCIvPg0KPGNpcmNsZSBmaWxsPSIjZTMwYTE3IiBjeD0iMTM1IiBjeT0iMTIwIiByPSI0OCIvPg0KPGcgZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJtYXRyaXgoMCAtMzAgMzAgMCAyMDAuNyAxMjApIj4NCjxnIGlkPSJnMiI+DQo8cGF0aCBpZD0iZzEiIGQ9Im0wLDAgMCwxIC41LDB6IiB0cmFuc2Zvcm09Im1hdHJpeCguOTUxMDYgLjMwOTAyIC0uMzA5MDIgLjk1MTA2IDAgLTEpIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNnMSIgdHJhbnNmb3JtPSJzY2FsZSgtMSAxKSIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0icm90YXRlKDcyKSIvPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0ibWF0cml4KC4zMDkwMiAtLjk1MTA2IC45NTEwNiAuMzA5MDIgMCAwKSIvPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0icm90YXRlKDE0NCkiLz4NCjx1c2UgeGxpbms6aHJlZj0iI2cyIiB0cmFuc2Zvcm09Im1hdHJpeCgtLjgwOTAyIC0uNTg3NzkgLjU4Nzc5IC0uODA5MDIgMCAwKSIvPg0KPC9nPg0KPC9zdmc+DQo="> 47 </a> 48 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_id.md"> 49 <img height="20px" src="https://img.shields.io/badge/ID-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDAgNDAwIj4NCjxwYXRoIGZpbGw9IiNjZTExMjYiIGQ9Im0wLDBoNjAwdjIwMGgtNjAweiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMjAwaDYwMHYyMDBoLTYwMHoiLz4NCjwvc3ZnPg0K"> 50 </a> 51 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_he.md"> 52 <img height="20px" src="https://img.shields.io/badge/HE-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjYwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB2aWV3Qm94PSIwIDAgMjIwIDE2MCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPGRlZnM+DQo8cGF0aCBzdHJva2U9IiMwMDM4YjgiIGZpbGwtb3BhY2l0eT0iMCIgaWQ9InRyaWFuZ2xlIiBzdHJva2Utd2lkdGg9IjUuNSIgZD0ibTAtMjkuMTQxLTI1LjIzNjksNDMuNzExNSA1MC40NzM4LTB6Ii8+DQo8L2RlZnM+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMCwwaDIyMHYxNjBoLTIyMHoiLz4NCjxnIGZpbGw9IiMwMDM4YjgiPg0KPHBhdGggZD0ibTAsMTVoMjIwdjI1aC0yMjB6Ii8+DQo8cGF0aCBkPSJtMCwxMjBoMjIwdjI1aC0yMjB6Ii8+DQo8L2c+DQo8dXNlIHhsaW5rOmhyZWY9IiN0cmlhbmdsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwIDgwKSIvPg0KPHVzZSB4bGluazpocmVmPSIjdHJpYW5nbGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgLTAgLTEgMTEwIDgwKSIvPg0KPC9zdmc+DQo="> 53 </a> 54 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_sa.md"> 55 <img height="20px" src="https://img.shields.io/badge/SA-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgdmlld0JveD0iMCAwIDEyIDYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCjxwYXRoIGZpbGw9IiNjZTExMjYiIGQ9Im0wLDBoM3Y2aC0zeiIvPg0KPHBhdGggZmlsbD0iIzAwOWEwMCIgZD0ibTMsMGg5djJoLTl6Ii8+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMywyaDl2MmgtOXoiLz4NCjxwYXRoIGQ9Im0zLDRoOXYyaC05eiIvPg0KPC9zdmc+DQo="> 56 </a> 57 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_fa.md"> 58 <img height="20px" src="https://img.shields.io/badge/IR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI1NzIuMiIgdmlld0JveD0iLTcuMjE3IC00LjEyOSAxMDAwIDU3Mi4yIj48cGF0aCBkPSJNLTcuMjE3LTQuMTI5aDEwMDB2NTcyLjJoLTEwMDB6IiBmaWxsPSIjMjM5ZjQwIi8+PHBhdGggZD0iTS03LjIxNyAyODEuOTcxaDEwMDB2Mjg2LjFoLTEwMDB6IiBmaWxsPSIjZGEwMDAwIi8+PHBhdGggZD0iTS03LjIxNyAxODYuNTcxaDEwMDB2MTkwLjc1aC0xMDAweiIgZmlsbD0iI2ZmZiIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjIxNyAxNTUuNDcxKSBzY2FsZSg0LjQ0NDUpIj48ZyBpZD0iZSI+PGcgaWQ9ImMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiI+PHBhdGggaWQ9ImIiIGQ9Ik0zIC41aDEzTTMuNSA1VjIuNWg0djJoNHYtMkg5bS00IDJoMW0xMCAwaC0yLjV2LTJoNG0wLTIuNXY0LjVoNFYwbS0yIDB2NC41Ii8+PHBhdGggaWQ9ImEiIGQ9Ik0zIDdoOW0xIDBoOSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeT0iNDIuOTEzIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjYiIgeT0iNTEuOTEzIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PC9nPjxnIGlkPSJkIj48dXNlIHhsaW5rOmhyZWY9IiNjIiB4PSIyMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIvPjx1c2UgeGxpbms6aHJlZj0iI2MiIHg9IjQwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjYyIgeD0iNjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiLz48L2c+PC9nPjx1c2UgeGxpbms6aHJlZj0iI2QiIHg9IjYwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjZSIgeD0iMTQwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PC9nPjxnIHRyYW5zZm9ybT0ibWF0cml4KDY5LjI4NSAwIDAgNjkuMjg1IDQ5Mi43ODMgMjgxLjk3MSkiIGZpbGw9IiNkYTAwMDAiPjxnIGlkPSJmIj48cGF0aCBkPSJNLS41NDguODM2QS45MTIuOTEyIDAgMCAwIC4zMjktLjcyMiAxIDEgMCAwIDEtLjU0OC44MzYiLz48cGF0aCBkPSJNLjYxOC42NjFBLjc2NC43NjQgMCAwIDAgLjQyMi0uNzQgMSAxIDAgMCAxIC42MTguNjYxTTAgMWwtLjA1LTFMMC0uNzg3YS4zMS4zMSAwIDAgMCAuMTE4LjA5OVYtLjFsLS4wNC45OTN6TS0uMDItLjg1TDAtLjgzMWEuMTQ0LjE0NCAwIDAgMCAuMjUyLS4xMzdBLjEzNi4xMzYgMCAwIDEgMC0uOTI1Ii8+PC9nPjx1c2UgeGxpbms6aHJlZj0iI2YiIHRyYW5zZm9ybT0ic2NhbGUoLTEgMSkiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiLz48L2c+PC9zdmc+"> 59 </a> 60 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_it.md"> 61 <img height="20px" src="https://img.shields.io/badge/IT-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjEwMDAiIHZpZXdCb3g9IjAgMCAzIDIiPg0KPHBhdGggZmlsbD0iIzAwOTI0NiIgZD0ibTAsMGgxdjJoLTF6Ii8+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMSwwaDF2MmgtMXoiLz4NCjxwYXRoIGZpbGw9IiNjZTJiMzciIGQ9Im0yLDBoMXYyaC0xeiIvPg0KPC9zdmc+DQo="> 62 </a> 63 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_uk.md"> 64 <img height="20px" src="https://img.shields.io/badge/UK-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU1LjIgMzguNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTUuMiAzOC40IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwoJLnN0MHtmaWxsOiNGRkQ1MDA7fQoJLnN0MXtmaWxsOiMwMDVCQkI7fQpdXT48L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zLjAzLDBoNDkuMTNjMS42NywwLDMuMDMsMS4zNiwzLjAzLDMuMDN2MzIuMzNjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3IFYzLjAzQzAsMS4zNiwxLjM3LDAsMy4wMywwTDMuMDMsMHoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMCwxOS4yaDU1LjJ2MTYuMTdjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3VjE5LjJMMCwxOS4yeiIvPjwvZz48L3N2Zz4="> 65 </a> 66 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_az.md"> 67 <img height="20px" src="https://img.shields.io/badge/AZ-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI2MDAiPg0KPHJlY3Qgd2lkdGg9IjEyMDAiIGhlaWdodD0iNjAwIiBmaWxsPSIjNTA5ZTJmIi8+DQo8cmVjdCB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNlZjMzNDAiLz4NCjxyZWN0IHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iIzAwYjVlMiIvPg0KPGNpcmNsZSBjeD0iNTcwIiBjeT0iMzAwIiByPSI5MCIgZmlsbD0iI2ZmZiIvPg0KPGNpcmNsZSBjeD0iNTkwIiBjeT0iMzAwIiByPSI3NSIgZmlsbD0iI2VmMzM0MCIvPg0KPHBhdGggZD0iTTY3MCAyNTBsOS41NjcgMjYuOTAzIDI1Ljc4OC0xMi4yNTgtMTIuMjU4IDI1Ljc4OEw3MjAgMzAwbC0yNi45MDMgOS41NjcgMTIuMjU4IDI1Ljc4OC0yNS43ODgtMTIuMjU4TDY3MCAzNTBsLTkuNTY3LTI2LjkwMy0yNS43ODggMTIuMjU4IDEyLjI1OC0yNS43ODhMNjIwIDMwMGwyNi45MDMtOS41NjctMTIuMjU4LTI1Ljc4OCAyNS43ODggMTIuMjU4eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+"> 68 </a> 69 <br> 70 <a href="https://pkg.go.dev/github.com/gofiber/fiber/v2#pkg-overview"> 71 <img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat-square"> 72 </a> 73 <a href="https://goreportcard.com/report/github.com/gofiber/fiber/v2"> 74 <img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B?style=flat-square"> 75 </a> 76 <a href="https://gocover.io/github.com/gofiber/fiber"> 77 <img src="https://img.shields.io/badge/%F0%9F%94%8E%20gocover-97.8%25-75C46B.svg?style=flat-square"> 78 </a> 79 <a href="https://github.com/gofiber/fiber/actions?query=workflow%3ASecurity"> 80 <img src="https://img.shields.io/github/actions/workflow/status/gofiber/fiber/security.yml?branch=master&label=%F0%9F%94%91%20gosec&style=flat-square&color=75C46B"> 81 </a> 82 <a href="https://github.com/gofiber/fiber/actions?query=workflow%3ATest"> 83 <img src="https://img.shields.io/github/actions/workflow/status/gofiber/fiber/test.yml?branch=master&label=%F0%9F%A7%AA%20tests&style=flat-square&color=75C46B"> 84 </a> 85 <a href="https://docs.gofiber.io"> 86 <img src="https://img.shields.io/badge/%F0%9F%92%A1%20fiber-docs-00ACD7.svg?style=flat-square"> 87 </a> 88 <a href="https://gofiber.io/discord"> 89 <img src="https://img.shields.io/discord/704680098577514527?style=flat-square&label=%F0%9F%92%AC%20discord&color=00ACD7"> 90 </a> 91 </p> 92 <p align="center" dir="rtl"> 93 <b>فایبەر</b> فرەیموۆرکێکی هاوشێوەی <a href="https://github.com/expressjs/express">Express</a>ـە کە لەسەر <a href="https://github.com/valyala/fasthttp">Fasthttp</a> دروست کراوە و <b>خێراترین</b> مەکینەی HTTPـە بۆ <a href="https://go.dev/doc/">Go</a>. دیزاین کراوە بۆ <b>بەفیڕۆنەدانی میمۆری</b> و گوێدانە <b>کارکردن بەخێرایی</b>. 94 </p> 95 96 ## ⚡️ دەستپێکێکی خێرا 97 98 ```go 99 package main 100 101 import "github.com/gofiber/fiber/v2" 102 103 func main() { 104 app := fiber.New() 105 106 app.Get("/", func(c *fiber.Ctx) error { 107 return c.SendString("سڵاو، دنیا 👋!") 108 }) 109 110 app.Listen(":3000") 111 } 112 ``` 113 114 ## 🤖 بێنچمارکەکان 115 116 ئەم تاقیکردنەوانە لەلایەن [TechEmpower](https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext) و [Go Web](https://github.com/smallnest/go-web-framework-benchmark) ئەنجام دراون. دەتوانیت هەموو ئەنجامەکان [لێرە](https://docs.gofiber.io/extra/benchmarks) ببینیت. 117 118 <p float="left" align="middle"> 119 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark-pipeline.png" width="49%"> 120 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark_alloc.png" width="49%"> 121 </p> 122 123 ## ⚙️ دامەزراندن 124 125 دڵنیا بە لەوەی کە لەناو ئامێرەکەت Go دامەزراوە ([دای بگرە](https://go.dev/dl/)). دەبێت وەشانەکەشی `1.17` یان سەرووتر بێت. 126 127 پڕۆژەکەت دەست پێ بکە بە دروستکردنی بوخچەیەک و کار پێ کردنی فەرمانی `go mod init github.com/your/repo` ([زیاتر](https://go.dev/blog/using-go-modules)) لەناو بوخچەکە. دواتریش بەم فەرمانەی خوارەوە فایبەر دامەزرێنە: 128 129 ```bash 130 go get -u github.com/gofiber/fiber/v2 131 ``` 132 133 ## 🎯 تایبەتمەندییەکان 134 135 - [ناونیشانی ئاڵۆز](https://docs.gofiber.io/guide/routing) 136 - [فایلی جێگیر](https://docs.gofiber.io/api/app#static) 137 - [خێراییەکی](https://docs.gofiber.io/extra/benchmarks) بێوێنە 138 - بەکارهێنانی [میمۆریی کەم](https://docs.gofiber.io/extra/benchmarks) 139 - توانای هەبوونی لقی [API](https://docs.gofiber.io/api/ctx) 140 - پشتگیریی [Middleware](https://docs.gofiber.io/category/-middleware) و [Next](https://docs.gofiber.io/api/ctx#next) وەک Express 141 - پڕۆگرامکردنی [خێرا](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497)ی ڕاژە 142 - [داڕێژە](https://github.com/gofiber/template) 143 - پشتگیریی [WebSocket](https://github.com/gofiber/websocket) 144 - [Server-Sent events](https://github.com/gofiber/recipes/tree/master/sse) 145 - [Rate Limiter](https://docs.gofiber.io/api/middleware/limiter) 146 - وەرگێڕراوە بۆ [18 زمان](https://docs.gofiber.io/) 147 - زیاتریش، [فایبەر بپشکنە](https://docs.gofiber.io/) 148 149 ## 💡 فەلسەفە 150 151 پڕۆگرامەرە نوێکانی گۆ کە لە نۆد جەی ئێسەوە دێن، مامەڵە لەگەڵ کەوانەیەکی فێربوون دەکەن 152 153 فایبەر بە شێوەیەکی نایاب بە سادەییەکەی پێشوازییەکی گەرم لە بەکارهێنەرە نوێکانی گۆ دەکات، کە زۆریان لە [نۆد](https://nodejs.org/en/about/)ـەوە هاتوون. 154 155 فایبەر لە Express دەچێت، کە کتێبخانەیەکی بەناوبانگی نۆدە. لەگەڵ تایبەتمەندییەکان و خێرایی گۆ تێکەڵ کراوە. ئەگەر پێشتر شتێکی وەک ئێکسپرێست بەکار هێنابێت، فایبەر زۆر ئاسان دەبێت. 156 157 گوێ لە هەموو بەکارهێنەرەکانیشمان دەگرین لە [کەناڵی دیسکۆردەکەمان](https://gofiber.io/discord) و [بەشی کێشەکان](https://github.com/gofiber/fiber/issues). 158 159 ## ⚠️ سنوورەکان 160 161 * تایبەتمەندیی `unsafe` بەکار دەهێنێت کە وای لێ دەکات لەگەڵ هەندێک وەشانی گۆ نەگونجێت. 162 * لەگەڵ `net/http` ناگونجێت. 163 164 ## 👀 نموونەکان 165 166 لە خوارەوە کۆمەڵێک نموونەی سادە هەن. ئەگەر دەتەوێت زیاتر ببینیت، تکایە سەردانی [ئێرە](https://github.com/gofiber/recipes) یان [ئێرە](https://docs.gofiber.io) بکە. 167 168 #### 📖 [**Basic Routing**](https://docs.gofiber.io/#basic-routing) 169 170 ```go 171 func main() { 172 app := fiber.New() 173 174 // GET /api/register 175 app.Get("/api/*", func(c *fiber.Ctx) error { 176 msg := fmt.Sprintf("✋ %s", c.Params("*")) 177 return c.SendString(msg) // => ✋ register 178 }) 179 180 // GET /flights/LAX-SFO 181 app.Get("/flights/:from-:to", func(c *fiber.Ctx) error { 182 msg := fmt.Sprintf("💸 From: %s, To: %s", c.Params("from"), c.Params("to")) 183 return c.SendString(msg) // => 💸 From: LAX, To: SFO 184 }) 185 186 // GET /dictionary.txt 187 app.Get("/:file.:ext", func(c *fiber.Ctx) error { 188 msg := fmt.Sprintf("📃 %s.%s", c.Params("file"), c.Params("ext")) 189 return c.SendString(msg) // => 📃 dictionary.txt 190 }) 191 192 // GET /john/75 193 app.Get("/:name/:age/:gender?", func(c *fiber.Ctx) error { 194 msg := fmt.Sprintf("👴 %s is %s years old", c.Params("name"), c.Params("age")) 195 return c.SendString(msg) // => 👴 john is 75 years old 196 }) 197 198 // GET /john 199 app.Get("/:name", func(c *fiber.Ctx) error { 200 msg := fmt.Sprintf("Hello, %s 👋!", c.Params("name")) 201 return c.SendString(msg) // => Hello john 👋! 202 }) 203 204 log.Fatal(app.Listen(":3000")) 205 } 206 207 ``` 208 209 #### 📖 [**Route Naming**](https://docs.gofiber.io/api/app#name) 210 211 ```go 212 func main() { 213 app := fiber.New() 214 215 // GET /api/register 216 app.Get("/api/*", func(c *fiber.Ctx) error { 217 msg := fmt.Sprintf("✋ %s", c.Params("*")) 218 return c.SendString(msg) // => ✋ register 219 }).Name("api") 220 221 data, _ := json.MarshalIndent(app.GetRoute("api"), "", " ") 222 fmt.Print(string(data)) 223 // Prints: 224 // { 225 // "method": "GET", 226 // "name": "api", 227 // "path": "/api/*", 228 // "params": [ 229 // "*1" 230 // ] 231 // } 232 233 234 log.Fatal(app.Listen(":3000")) 235 } 236 237 ``` 238 239 #### 📖 [**Serving Static Files**](https://docs.gofiber.io/api/app#static) 240 241 ```go 242 func main() { 243 app := fiber.New() 244 245 app.Static("/", "./public") 246 // => http://localhost:3000/js/script.js 247 // => http://localhost:3000/css/style.css 248 249 app.Static("/prefix", "./public") 250 // => http://localhost:3000/prefix/js/script.js 251 // => http://localhost:3000/prefix/css/style.css 252 253 app.Static("*", "./public/index.html") 254 // => http://localhost:3000/any/path/shows/index/html 255 256 log.Fatal(app.Listen(":3000")) 257 } 258 259 ``` 260 261 #### 📖 [**Middleware & Next**](https://docs.gofiber.io/api/ctx#next) 262 263 ```go 264 func main() { 265 app := fiber.New() 266 267 // Match any route 268 app.Use(func(c *fiber.Ctx) error { 269 fmt.Println("🥇 First handler") 270 return c.Next() 271 }) 272 273 // Match all routes starting with /api 274 app.Use("/api", func(c *fiber.Ctx) error { 275 fmt.Println("🥈 Second handler") 276 return c.Next() 277 }) 278 279 // GET /api/list 280 app.Get("/api/list", func(c *fiber.Ctx) error { 281 fmt.Println("🥉 Last handler") 282 return c.SendString("Hello, World 👋!") 283 }) 284 285 log.Fatal(app.Listen(":3000")) 286 } 287 288 ``` 289 290 <details> 291 <summary>📚 نموونەی زیاتر نیشان بدە</summary> 292 293 ### داڕێژەکان 294 295 📖 [Config](https://docs.gofiber.io/api/fiber#config) 296 📖 [Engines](https://github.com/gofiber/template) 297 📖 [Render](https://docs.gofiber.io/api/ctx#render) 298 299 ئەگەر هیچ داڕێژەیەکت دەستنیشان نەکردبێت، [html/template](https://pkg.go.dev/html/template/) خۆکارانە دەستنیشان دەکرێت بۆ بەکارهێنان. 300 301 بۆ تایبەتمەندیی زیاتر، ئەمانە ببینە: [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache), [pug](https://github.com/Joker/jade). 302 303 پاکێجی [Template](https://github.com/gofiber/template)ـمان ببینە کە پشتگیریی چەندان داڕێژە دەکات. 304 305 ```go 306 package main 307 308 import ( 309 "github.com/gofiber/fiber/v2" 310 "github.com/gofiber/template/pug" 311 ) 312 313 func main() { 314 // You can setup Views engine before initiation app: 315 app := fiber.New(fiber.Config{ 316 Views: pug.New("./views", ".pug"), 317 }) 318 319 // And now, you can call template `./views/home.pug` like this: 320 app.Get("/", func(c *fiber.Ctx) error { 321 return c.Render("home", fiber.Map{ 322 "title": "Homepage", 323 "year": 1999, 324 }) 325 }) 326 327 log.Fatal(app.Listen(":3000")) 328 } 329 ``` 330 331 ### زنجیرەکان 332 333 📖 [Group](https://docs.gofiber.io/api/app#group) 334 335 ```go 336 func middleware(c *fiber.Ctx) error { 337 fmt.Println("Don't mind me!") 338 return c.Next() 339 } 340 341 func handler(c *fiber.Ctx) error { 342 return c.SendString(c.Path()) 343 } 344 345 func main() { 346 app := fiber.New() 347 348 // Root API route 349 api := app.Group("/api", middleware) // /api 350 351 // API v1 routes 352 v1 := api.Group("/v1", middleware) // /api/v1 353 v1.Get("/list", handler) // /api/v1/list 354 v1.Get("/user", handler) // /api/v1/user 355 356 // API v2 routes 357 v2 := api.Group("/v2", middleware) // /api/v2 358 v2.Get("/list", handler) // /api/v2/list 359 v2.Get("/user", handler) // /api/v2/user 360 361 // ... 362 } 363 364 ``` 365 366 ### Middleware logger 367 368 📖 [Logger](https://docs.gofiber.io/api/middleware/logger) 369 370 ```go 371 package main 372 373 import ( 374 "log" 375 376 "github.com/gofiber/fiber/v2" 377 "github.com/gofiber/fiber/v2/middleware/logger" 378 ) 379 380 func main() { 381 app := fiber.New() 382 383 app.Use(logger.New()) 384 385 // ... 386 387 log.Fatal(app.Listen(":3000")) 388 } 389 ``` 390 391 ### Cross-Origin Resource Sharing (CORS) 392 393 📖 [CORS](https://docs.gofiber.io/api/middleware/cors) 394 395 ```go 396 import ( 397 "log" 398 399 "github.com/gofiber/fiber/v2" 400 "github.com/gofiber/fiber/v2/middleware/cors" 401 ) 402 403 func main() { 404 app := fiber.New() 405 406 app.Use(cors.New()) 407 408 // ... 409 410 log.Fatal(app.Listen(":3000")) 411 } 412 ``` 413 414 Check CORS by passing any domain in `Origin` header: 415 416 ```bash 417 curl -H "Origin: http://example.com" --verbose http://localhost:3000 418 ``` 419 420 ### گۆڕینی 404 421 422 📖 [HTTP Methods](https://docs.gofiber.io/api/ctx#status) 423 424 ```go 425 func main() { 426 app := fiber.New() 427 428 app.Static("/", "./public") 429 430 app.Get("/demo", func(c *fiber.Ctx) error { 431 return c.SendString("This is a demo!") 432 }) 433 434 app.Post("/register", func(c *fiber.Ctx) error { 435 return c.SendString("Welcome!") 436 }) 437 438 // Last middleware to match anything 439 app.Use(func(c *fiber.Ctx) error { 440 return c.SendStatus(404) 441 // => 404 "Not Found" 442 }) 443 444 log.Fatal(app.Listen(":3000")) 445 } 446 ``` 447 448 ### وەڵامی JSON 449 450 📖 [JSON](https://docs.gofiber.io/api/ctx#json) 451 452 ```go 453 type User struct { 454 Name string `json:"name"` 455 Age int `json:"age"` 456 } 457 458 func main() { 459 app := fiber.New() 460 461 app.Get("/user", func(c *fiber.Ctx) error { 462 return c.JSON(&User{"John", 20}) 463 // => {"name":"John", "age":20} 464 }) 465 466 app.Get("/json", func(c *fiber.Ctx) error { 467 return c.JSON(fiber.Map{ 468 "success": true, 469 "message": "Hi John!", 470 }) 471 // => {"success":true, "message":"Hi John!"} 472 }) 473 474 log.Fatal(app.Listen(":3000")) 475 } 476 ``` 477 478 ### WebSocket Upgrade 479 480 📖 [Websocket](https://github.com/gofiber/websocket) 481 482 ```go 483 import ( 484 "github.com/gofiber/fiber/v2" 485 "github.com/gofiber/fiber/v2/middleware/websocket" 486 ) 487 488 func main() { 489 app := fiber.New() 490 491 app.Get("/ws", websocket.New(func(c *websocket.Conn) { 492 for { 493 mt, msg, err := c.ReadMessage() 494 if err != nil { 495 log.Println("read:", err) 496 break 497 } 498 log.Printf("recv: %s", msg) 499 err = c.WriteMessage(mt, msg) 500 if err != nil { 501 log.Println("write:", err) 502 break 503 } 504 } 505 })) 506 507 log.Fatal(app.Listen(":3000")) 508 // ws://localhost:3000/ws 509 } 510 ``` 511 512 ### Server-Sent Events 513 514 📖 [More Info](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) 515 516 ```go 517 import ( 518 "github.com/gofiber/fiber/v2" 519 "github.com/valyala/fasthttp" 520 ) 521 522 func main() { 523 app := fiber.New() 524 525 app.Get("/sse", func(c *fiber.Ctx) error { 526 c.Set("Content-Type", "text/event-stream") 527 c.Set("Cache-Control", "no-cache") 528 c.Set("Connection", "keep-alive") 529 c.Set("Transfer-Encoding", "chunked") 530 531 c.Context().SetBodyStreamWriter(fasthttp.StreamWriter(func(w *bufio.Writer) { 532 fmt.Println("WRITER") 533 var i int 534 535 for { 536 i++ 537 msg := fmt.Sprintf("%d - the time is %v", i, time.Now()) 538 fmt.Fprintf(w, "data: Message: %s\n\n", msg) 539 fmt.Println(msg) 540 541 w.Flush() 542 time.Sleep(5 * time.Second) 543 } 544 })) 545 546 return nil 547 }) 548 549 log.Fatal(app.Listen(":3000")) 550 } 551 ``` 552 553 ### Recover middleware 554 555 📖 [Recover](https://docs.gofiber.io/api/middleware/recover) 556 557 ```go 558 import ( 559 "github.com/gofiber/fiber/v2" 560 "github.com/gofiber/fiber/v2/middleware/recover" 561 ) 562 563 func main() { 564 app := fiber.New() 565 566 app.Use(recover.New()) 567 568 app.Get("/", func(c *fiber.Ctx) error { 569 panic("normally this would crash your app") 570 }) 571 572 log.Fatal(app.Listen(":3000")) 573 } 574 ``` 575 576 </details> 577 578 ### بەکارهێنانی پڕۆکسی 579 580 📖 [Config](https://docs.gofiber.io/api/fiber#config) 581 582 ```go 583 import ( 584 "github.com/gofiber/fiber/v2" 585 "github.com/gofiber/fiber/v2/middleware/recover" 586 ) 587 588 func main() { 589 app := fiber.New(fiber.Config{ 590 EnableTrustedProxyCheck: true, 591 TrustedProxies: []string{"0.0.0.0", "1.1.1.1/30"}, // IP address or IP address range 592 ProxyHeader: fiber.HeaderXForwardedFor, 593 }) 594 595 // ... 596 597 log.Fatal(app.Listen(":3000")) 598 } 599 ``` 600 601 </details> 602 603 ## 🧬 کاڵا ناوەکییکان 604 605 ئەمە لیستی ئەو کاڵانەیە کە لەناو فایبەر جێگیر کراون. 606 607 | کاڵا | دەربارە | 608 | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 609 | [basicauth](https://github.com/gofiber/fiber/tree/master/middleware/basicauth) | Basic auth middleware provides an HTTP basic authentication. It calls the next handler for valid credentials and 401 Unauthorized for missing or invalid credentials. | 610 | [cache](https://github.com/gofiber/fiber/tree/master/middleware/cache) | Intercept and cache responses | 611 | [compress](https://github.com/gofiber/fiber/tree/master/middleware/compress) | Compression middleware for Fiber, it supports `deflate`, `gzip` and `brotli` by default. | 612 | [cors](https://github.com/gofiber/fiber/tree/master/middleware/cors) | Enable cross-origin resource sharing \(CORS\) with various options. | 613 | [csrf](https://github.com/gofiber/fiber/tree/master/middleware/csrf) | Protect from CSRF exploits. | 614 | [encryptcookie](https://github.com/gofiber/fiber/tree/master/middleware/encryptcookie) | Encrypt middleware which encrypts cookie values. | 615 | [envvar](https://github.com/gofiber/fiber/tree/master/middleware/envvar) | Expose environment variables with providing an optional config. | 616 | [etag](https://github.com/gofiber/fiber/tree/master/middleware/etag) | ETag middleware that lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content has not changed. | 617 | [expvar](https://github.com/gofiber/fiber/tree/master/middleware/expvar) | Expvar middleware that serves via its HTTP server runtime exposed variants in the JSON format. | 618 | [favicon](https://github.com/gofiber/fiber/tree/master/middleware/favicon) | Ignore favicon from logs or serve from memory if a file path is provided. | 619 | [filesystem](https://github.com/gofiber/fiber/tree/master/middleware/filesystem) | FileSystem middleware for Fiber, special thanks and credits to Alireza Salary | 620 | [limiter](https://github.com/gofiber/fiber/tree/master/middleware/limiter) | Rate-limiting middleware for Fiber. Use to limit repeated requests to public APIs and/or endpoints such as password reset. | 621 | [logger](https://github.com/gofiber/fiber/tree/master/middleware/logger) | HTTP request/response logger. | 622 | [monitor](https://github.com/gofiber/fiber/tree/master/middleware/monitor) | Monitor middleware that reports server metrics, inspired by express-status-monitor | 623 | [pprof](https://github.com/gofiber/fiber/tree/master/middleware/pprof) | Special thanks to Matthew Lee \(@mthli\) | 624 | [proxy](https://github.com/gofiber/fiber/tree/master/middleware/proxy) | Allows you to proxy requests to a multiple servers | 625 | [recover](https://github.com/gofiber/fiber/tree/master/middleware/recover) | Recover middleware recovers from panics anywhere in the stack chain and handles the control to the centralized[ ErrorHandler](https://docs.gofiber.io/guide/error-handling). | 626 | [requestid](https://github.com/gofiber/fiber/tree/master/middleware/requestid) | Adds a requestid to every request. | 627 | [session](https://github.com/gofiber/fiber/tree/master/middleware/session) | Session middleware. NOTE: This middleware uses our Storage package. | 628 | [skip](https://github.com/gofiber/fiber/tree/master/middleware/skip) | Skip middleware that skips a wrapped handler is a predicate is true. | 629 | [timeout](https://github.com/gofiber/fiber/tree/master/middleware/timeout) | Adds a max time for a request and forwards to ErrorHandler if it is exceeded. | 630 | [keyauth](https://github.com/gofiber/keyauth) | Key auth middleware provides a key based authentication. | 631 | [redirect](https://github.com/gofiber/redirect) | Redirect middleware | 632 | [rewrite](https://github.com/gofiber/rewrite) | Rewrite middleware rewrites the URL path based on provided rules. It can be helpful for backward compatibility or just creating cleaner and more descriptive links. | 633 | [adaptor](https://github.com/gofiber/adaptor) | Converter for net/http handlers to/from Fiber request handlers, special thanks to @arsmn! | 634 | [helmet](https://github.com/gofiber/helmet) | Helps secure your apps by setting various HTTP headers. | 635 636 ## 🧬 کاڵا دەرەکییەکان 637 638 ئەمە لیستی ئەو کاڵا دەرەکییانەیە کە لەلایەن [تیمی فایبەر](https://github.com/orgs/gofiber/people) بەڕێوە دەبرێن. 639 640 | کاڵا | دەربارە | 641 | :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 642 | [jwt](https://github.com/gofiber/jwt) | JWT returns a JSON Web Token \(JWT\) auth middleware. | 643 | [storage](https://github.com/gofiber/storage) | Premade storage drivers that implement the Storage interface, designed to be used with various Fiber middlewares. | 644 | [template](https://github.com/gofiber/template) | This package contains 8 template engines that can be used with Fiber `v1.10.x` Go version 1.13 or higher is required. | 645 | [websocket](https://github.com/gofiber/websocket) | Based on Fasthttp WebSocket for Fiber with Locals support! | 646 647 ## 🕶️ Awesome List 648 649 For more articles, middlewares, examples or tools check our [awesome list](https://github.com/gofiber/awesome-fiber). 650 651 ## 👍 هاوکار بە 652 653 ئەگەر دەتەوێت دەستخۆشی لە فایبەر بکەیت: 654 655 1. [ئەستێرەیەک](https://github.com/gofiber/fiber/stargazers)ـی بۆ دا بنێ. 656 2. لە تویتەر [تویتی لەسەر بکە](https://twitter.com/intent/tweet?text=Fiber%20is%20an%20Express%20inspired%20%23web%20%23framework%20built%20on%20top%20of%20Fasthttp%2C%20the%20fastest%20HTTP%20engine%20for%20%23Go.%20Designed%20to%20ease%20things%20up%20for%20%23fast%20development%20with%20zero%20memory%20allocation%20and%20%23performance%20in%20mind%20%F0%9F%9A%80%20https%3A%2F%2Fgithub.com%2Fgofiber%2Ffiber). 657 3. بە وێبڵۆگێک باسی بکە. 658 4. [پشتگیری بکە](https://buymeacoff.ee/fenny). 659 660 ## ☕ پشتگیرییەکان 661 662 فایبەر لەسەر پشتگیریی ئێوە بەندە بۆ پارەدانەکانی، بۆ نموونە دۆمەینەکەی، GitBook و خزمەتگوزارییەکانی تر. تۆش دەتوانیت تۆش دەتوانیت سەردانی [ئێرە](https://buymeacoff.ee/fenny) بکەیت و پشتگیریی فایبەر بکەیت. 663 664 | | User | Donation | 665 | :--------------------------------------------------------- | :----------------------------------------------- | :------- | 666 |  | [@destari](https://github.com/destari) | ☕ x 10 | 667 |  | [@dembygenesis](https://github.com/dembygenesis) | ☕ x 5 | 668 |  | [@thomasvvugt](https://github.com/thomasvvugt) | ☕ x 5 | 669 |  | [@hendratommy](https://github.com/hendratommy) | ☕ x 5 | 670 |  | [@ekaputra07](https://github.com/ekaputra07) | ☕ x 5 | 671 |  | [@jorgefuertes](https://github.com/jorgefuertes) | ☕ x 5 | 672 |  | [@candidosales](https://github.com/candidosales) | ☕ x 5 | 673 |  | [@l0nax](https://github.com/l0nax) | ☕ x 3 | 674 |  | [@bihe](https://github.com/bihe) | ☕ x 3 | 675 |  | [@justdave](https://github.com/justdave) | ☕ x 3 | 676 |  | [@koddr](https://github.com/koddr) | ☕ x 1 | 677 |  | [@lapolinar](https://github.com/lapolinar) | ☕ x 1 | 678 |  | [@diegowifi](https://github.com/diegowifi) | ☕ x 1 | 679 |  | [@ssimk0](https://github.com/ssimk0) | ☕ x 1 | 680 |  | [@raymayemir](https://github.com/raymayemir) | ☕ x 1 | 681 |  | [@melkorm](https://github.com/melkorm) | ☕ x 1 | 682 |  | [@marvinjwendt](https://github.com/marvinjwendt) | ☕ x 1 | 683 |  | [@toishy](https://github.com/toishy) | ☕ x 1 | 684 685 ## 💻 هاوکارەکان 686 687 <img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;"> 688 689 ## ⭐️ ئەستێرەکان 690 691 <img src="https://starchart.cc/gofiber/fiber.svg" alt="Stargazers over time" style="max-width: 100%"> 692 693 ## ⚠️ مۆڵەت 694 695 مافی لەبەرگرتنەوە (c) 2019-ئێستا پارێزراوە بۆ [Fenny](https://github.com/fenny) و [هاوکاران](https://github.com/gofiber/fiber/graphs/contributors). فایبەر نەرمەوەڵایەکی خۆڕایی و سەرچاوەکراوەیە لەژێر مۆڵەتنامەی [MIT](https://github.com/gofiber/fiber/blob/master/LICENSE). لۆگۆی فایبەر لەلایەن [Vic Shóstak](https://github.com/koddr) دروست کراوە و مۆڵەتنامەی [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) بەکار دەهێنێت (CC BY-SA 4.0 نێودەوڵەتی). 696 697 **مۆڵەتەکانی دیکە** 698 699 - [colorable](https://github.com/mattn/go-colorable/blob/master/LICENSE) 700 - [isatty](https://github.com/mattn/go-isatty/blob/master/LICENSE) 701 - [runewidth](https://github.com/mattn/go-runewidth/blob/master/LICENSE) 702 - [fasthttp](https://github.com/valyala/fasthttp/blob/master/LICENSE) 703 - [bytebufferpool](https://github.com/valyala/bytebufferpool/blob/master/LICENSE) 704 - [dictpool](https://github.com/savsgio/dictpool/blob/master/LICENSE) 705 - [fwd](https://github.com/philhofer/fwd/blob/master/LICENSE.md) 706 - [go-ole](https://github.com/go-ole/go-ole/blob/master/LICENSE) 707 - [gopsutil](https://github.com/shirou/gopsutil/blob/master/LICENSE) 708 - [msgp](https://github.com/tinylib/msgp/blob/master/LICENSE) 709 - [schema](https://github.com/gorilla/schema/blob/master/LICENSE) 710 - [uuid](https://github.com/google/uuid/blob/master/LICENSE) 711 - [wmi](https://github.com/StackExchange/wmi/blob/master/LICENSE)