github.com/boomhut/fiber/v2@v2.0.0-20230603160335-b65c856e57d3/.github/README_nl.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">
    93    <b>Fiber</b> is een <b>web framework</b> geΓ―nspireerd door <a href="https://github.com/expressjs/express">Express</a> gebouwd bovenop <a href="https://github.com/valyala/fasthttp">Fasthttp</a>, de <b>snelste</b> HTTP-engine voor <a href="https://go.dev/doc/">Go</a>. Ontworpen om <b>snelle</b> ontwikkeling <b>gemakkelijker</b> te maken <b>zonder geheugenallocatie</b> tezamen met <b>hoge prestaties</b>.
    94  </p>
    95  
    96  ## ⚑️ Bliksemsnelle start
    97  
    98  ```go
    99  package main
   100  
   101  import "github.com/boomhut/fiber/v2"
   102  
   103  func main() {
   104      app := fiber.New()
   105  
   106      app.Get("/", func(c *fiber.Ctx) error {
   107          return c.SendString("Hello, World πŸ‘‹!")
   108      })
   109  
   110      app.Listen(":3000")
   111  }
   112  ```
   113  
   114  ## πŸ€– Benchmarks
   115  
   116  Deze tests zijn uitgevoerd door [TechEmpower](https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext) en [Go Web](https://github.com/smallnest/go-web-framework-benchmark). Bezoek onze [Wiki](https://fiber.wiki/benchmarks) voor alle benchmark resultaten.
   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  ## βš™οΈ Installatie
   124  
   125  Make sure you have Go installed ([download](https://go.dev/dl/)). Version `1.17` or higher is required.
   126  
   127  Initialize your project by creating a folder and then running `go mod init github.com/your/repo` ([learn more](https://go.dev/blog/using-go-modules)) inside the folder. Then install Fiber with the [`go get`](https://pkg.go.dev/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them) command:
   128  
   129  ```bash
   130  go get -u github.com/gofiber/fiber/v2
   131  ```
   132  
   133  ## 🎯 Features
   134  
   135  -   Robuuste [routing](https://docs.gofiber.io/guide/routing)
   136  -   Serveer [statische bestanden](https://docs.gofiber.io/api/app#static)
   137  -   Extreme [prestaties](https://docs.gofiber.io/extra/benchmarks)
   138  -   [Weinig geheugenruimte](https://docs.gofiber.io/extra/benchmarks)
   139  -   [API endpoints](https://docs.gofiber.io/api/ctx)
   140  -   [Middleware](https://docs.gofiber.io/category/-middleware) & [Next](https://docs.gofiber.io/api/ctx#next) ondersteuning
   141  -   [Snelle](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497) server-side programmering
   142  -   [Template engines](https://github.com/gofiber/template)
   143  -   [WebSocket ondersteuning](https://github.com/gofiber/websocket)
   144  -   [Server-Sent events](https://github.com/gofiber/recipes/tree/master/sse)
   145  -   [Rate Limiter](https://docs.gofiber.io/category/-middleware/limiter)
   146  -   Vertaald in [18 talen](https://docs.gofiber.io/)
   147  -   En nog veel meer, [ontdek Fiber](https://docs.gofiber.io/)
   148  
   149  ## πŸ’‘ Filosofie
   150  
   151  Nieuwe gophers die de overstap maken van [Node.js](https://nodejs.org/en/about/) naar [Go](https://go.dev/doc/), hebben te maken met een leercurve voordat ze kunnen beginnen met het bouwen van hun webapplicaties of microservices. Fiber, als een **web framework**, is gebouwd met het idee van **minimalisme** en volgt de **UNIX-manier**, zodat nieuwe gophers snel de wereld van Go kunnen betreden met een warm en vertrouwd welkom.\
   152  
   153  Fiber is **geΓ―nspireerd** door Express, het populairste webframework op internet. We hebben het **gemak** van Express gecombineerd met de **onbewerkte prestaties** van Go. Als je ooit een webapplicatie in Node.js hebt geΓ―mplementeerd (_zoals Express of vergelijkbaar_), dan zullen veel methoden en principes **heel gewoon** voor je lijken.
   154  
   155  We **luisteren** naar onze gebruikers in [issues](https://github.com/gofiber/fiber/issues) (_en overal op het internet_) om een **snelle**, **flexibele** en **vriendelijk** Go web framework te maken voor **elke** taak, **deadline** en ontwikkelaar **vaardigheid**! Net zoals Express dat doet in de JavaScript-wereld.
   156  
   157  ## ⚠️ Limitations
   158  * Due to Fiber's usage of unsafe, the library may not always be compatible with the latest Go version. Fiber 2.40.0 has been tested with Go versions 1.17 to 1.20.
   159  * Fiber is not compatible with net/http interfaces. This means you will not be able to use projects like gqlgen, go-swagger, or any others which are part of the net/http ecosystem.
   160  
   161  ## πŸ‘€ Voorbeelden
   162  
   163  Hieronder staan enkele van de meest voorkomende voorbeelden.
   164  
   165  > Bekijk ons [Recepten repository](https://github.com/gofiber/recipes) voor meer voorbeelden met code of bezoek onze [API documentatie](https://fiber.wiki).
   166  
   167  Listed below are some of the common examples. If you want to see more code examples , please visit our [Recipes repository](https://github.com/gofiber/recipes) or visit our hosted [API documentation](https://docs.gofiber.io).
   168  
   169  #### πŸ“– [**Basic Routing**](https://docs.gofiber.io/#basic-routing)
   170  
   171  ```go
   172  func main() {
   173      app := fiber.New()
   174  
   175      // GET /api/register
   176      app.Get("/api/*", func(c *fiber.Ctx) error {
   177          msg := fmt.Sprintf("βœ‹ %s", c.Params("*"))
   178          return c.SendString(msg) // => βœ‹ register
   179      })
   180  
   181      // GET /flights/LAX-SFO
   182      app.Get("/flights/:from-:to", func(c *fiber.Ctx) error {
   183          msg := fmt.Sprintf("πŸ’Έ From: %s, To: %s", c.Params("from"), c.Params("to"))
   184          return c.SendString(msg) // => πŸ’Έ From: LAX, To: SFO
   185      })
   186  
   187      // GET /dictionary.txt
   188      app.Get("/:file.:ext", func(c *fiber.Ctx) error {
   189          msg := fmt.Sprintf("πŸ“ƒ %s.%s", c.Params("file"), c.Params("ext"))
   190          return c.SendString(msg) // => πŸ“ƒ dictionary.txt
   191      })
   192  
   193      // GET /john/75
   194      app.Get("/:name/:age/:gender?", func(c *fiber.Ctx) error {
   195          msg := fmt.Sprintf("πŸ‘΄ %s is %s years old", c.Params("name"), c.Params("age"))
   196          return c.SendString(msg) // => πŸ‘΄ john is 75 years old
   197      })
   198  
   199      // GET /john
   200      app.Get("/:name", func(c *fiber.Ctx) error {
   201          msg := fmt.Sprintf("Hello, %s πŸ‘‹!", c.Params("name"))
   202          return c.SendString(msg) // => Hello john πŸ‘‹!
   203      })
   204  
   205      log.Fatal(app.Listen(":3000"))
   206  }
   207  
   208  ```
   209  
   210  #### πŸ“– [**Route Naming**](https://docs.gofiber.io/api/app#name)
   211  
   212  ```go
   213  func main() {
   214      app := fiber.New()
   215  
   216      // GET /api/register
   217      app.Get("/api/*", func(c *fiber.Ctx) error {
   218          msg := fmt.Sprintf("βœ‹ %s", c.Params("*"))
   219          return c.SendString(msg) // => βœ‹ register
   220      }).Name("api")
   221  
   222      data, _ := json.MarshalIndent(app.GetRoute("api"), "", "  ")
   223      fmt.Print(string(data))
   224      // Prints:
   225      // {
   226      //    "method": "GET",
   227      //    "name": "api",
   228      //    "path": "/api/*",
   229      //    "params": [
   230      //      "*1"
   231      //    ]
   232      // }
   233  
   234  
   235      log.Fatal(app.Listen(":3000"))
   236  }
   237  
   238  ```
   239  
   240  #### πŸ“– [**Serving Static Files**](https://docs.gofiber.io/api/app#static)
   241  
   242  ```go
   243  func main() {
   244      app := fiber.New()
   245  
   246      app.Static("/", "./public")
   247      // => http://localhost:3000/js/script.js
   248      // => http://localhost:3000/css/style.css
   249  
   250      app.Static("/prefix", "./public")
   251      // => http://localhost:3000/prefix/js/script.js
   252      // => http://localhost:3000/prefix/css/style.css
   253  
   254      app.Static("*", "./public/index.html")
   255      // => http://localhost:3000/any/path/shows/index/html
   256  
   257      log.Fatal(app.Listen(":3000"))
   258  }
   259  
   260  ```
   261  
   262  #### πŸ“– [**Middleware & Next**](https://docs.gofiber.io/api/ctx#next)
   263  
   264  ```go
   265  func main() {
   266  	app := fiber.New()
   267  
   268  	// Match any route
   269  	app.Use(func(c *fiber.Ctx) error {
   270  		fmt.Println("πŸ₯‡ First handler")
   271  		return c.Next()
   272  	})
   273  
   274  	// Match all routes starting with /api
   275  	app.Use("/api", func(c *fiber.Ctx) error {
   276  		fmt.Println("πŸ₯ˆ Second handler")
   277  		return c.Next()
   278  	})
   279  
   280  	// GET /api/register
   281  	app.Get("/api/list", func(c *fiber.Ctx) error {
   282  		fmt.Println("πŸ₯‰ Last handler")
   283  		return c.SendString("Hello, World πŸ‘‹!")
   284  	})
   285  
   286  	log.Fatal(app.Listen(":3000"))
   287  }
   288  
   289  ```
   290  
   291  <details>
   292    <summary>πŸ“š Show more code examples</summary>
   293  
   294  ### Views engines
   295  
   296  πŸ“– [Config](https://docs.gofiber.io/api/fiber#config)
   297  πŸ“– [Engines](https://github.com/gofiber/template)
   298  πŸ“– [Render](https://docs.gofiber.io/api/ctx#render)
   299  
   300  Fiber defaults to the [html/template](https://pkg.go.dev/html/template/) when no view engine is set.
   301  
   302  If you want to execute partials or use a different engine like [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache) or [pug](https://github.com/Joker/jade) etc..
   303  
   304  Checkout our [Template](https://github.com/gofiber/template) package that support multiple view engines.
   305  
   306  ```go
   307  package main
   308  
   309  import (
   310      "github.com/boomhut/fiber/v2"
   311      "github.com/gofiber/template/pug"
   312  )
   313  
   314  func main() {
   315      // You can setup Views engine before initiation app:
   316      app := fiber.New(fiber.Config{
   317          Views: pug.New("./views", ".pug"),
   318      })
   319  
   320      // And now, you can call template `./views/home.pug` like this:
   321      app.Get("/", func(c *fiber.Ctx) error {
   322          return c.Render("home", fiber.Map{
   323              "title": "Homepage",
   324              "year":  1999,
   325          })
   326      })
   327  
   328      log.Fatal(app.Listen(":3000"))
   329  }
   330  ```
   331  
   332  ### Grouping routes into chains
   333  
   334  πŸ“– [Group](https://docs.gofiber.io/api/app#group)
   335  
   336  ```go
   337  func middleware(c *fiber.Ctx) error {
   338      fmt.Println("Don't mind me!")
   339      return c.Next()
   340  }
   341  
   342  func handler(c *fiber.Ctx) error {
   343      return c.SendString(c.Path())
   344  }
   345  
   346  func main() {
   347      app := fiber.New()
   348  
   349      // Root API route
   350      api := app.Group("/api", middleware) // /api
   351  
   352      // API v1 routes
   353      v1 := api.Group("/v1", middleware) // /api/v1
   354      v1.Get("/list", handler)           // /api/v1/list
   355      v1.Get("/user", handler)           // /api/v1/user
   356  
   357      // API v2 routes
   358      v2 := api.Group("/v2", middleware) // /api/v2
   359      v2.Get("/list", handler)           // /api/v2/list
   360      v2.Get("/user", handler)           // /api/v2/user
   361  
   362      // ...
   363  }
   364  
   365  ```
   366  
   367  ### Middleware logger
   368  
   369  πŸ“– [Logger](https://docs.gofiber.io/api/middleware/logger)
   370  
   371  ```go
   372  package main
   373  
   374  import (
   375      "log"
   376  
   377      "github.com/boomhut/fiber/v2"
   378      "github.com/gofiber/fiber/v2/middleware/logger"
   379  )
   380  
   381  func main() {
   382      app := fiber.New()
   383  
   384      app.Use(logger.New())
   385  
   386      // ...
   387  
   388      log.Fatal(app.Listen(":3000"))
   389  }
   390  ```
   391  
   392  ### Cross-Origin Resource Sharing (CORS)
   393  
   394  πŸ“– [CORS](https://docs.gofiber.io/api/middleware/cors)
   395  
   396  ```go
   397  import (
   398      "log"
   399  
   400      "github.com/boomhut/fiber/v2"
   401      "github.com/gofiber/fiber/v2/middleware/cors"
   402  )
   403  
   404  func main() {
   405      app := fiber.New()
   406  
   407      app.Use(cors.New())
   408  
   409      // ...
   410  
   411      log.Fatal(app.Listen(":3000"))
   412  }
   413  ```
   414  
   415  Check CORS by passing any domain in `Origin` header:
   416  
   417  ```bash
   418  curl -H "Origin: http://example.com" --verbose http://localhost:3000
   419  ```
   420  
   421  ### Custom 404 response
   422  
   423  πŸ“– [HTTP Methods](https://docs.gofiber.io/api/ctx#status)
   424  
   425  ```go
   426  func main() {
   427      app := fiber.New()
   428  
   429      app.Static("/", "./public")
   430  
   431      app.Get("/demo", func(c *fiber.Ctx) error {
   432          return c.SendString("This is a demo!")
   433      })
   434  
   435      app.Post("/register", func(c *fiber.Ctx) error {
   436          return c.SendString("Welcome!")
   437      })
   438  
   439      // Last middleware to match anything
   440      app.Use(func(c *fiber.Ctx) error {
   441          return c.SendStatus(404)
   442          // => 404 "Not Found"
   443      })
   444  
   445      log.Fatal(app.Listen(":3000"))
   446  }
   447  ```
   448  
   449  ### JSON Response
   450  
   451  πŸ“– [JSON](https://docs.gofiber.io/api/ctx#json)
   452  
   453  ```go
   454  type User struct {
   455      Name string `json:"name"`
   456      Age  int    `json:"age"`
   457  }
   458  
   459  func main() {
   460      app := fiber.New()
   461  
   462      app.Get("/user", func(c *fiber.Ctx) error {
   463          return c.JSON(&User{"John", 20})
   464          // => {"name":"John", "age":20}
   465      })
   466  
   467      app.Get("/json", func(c *fiber.Ctx) error {
   468          return c.JSON(fiber.Map{
   469              "success": true,
   470              "message": "Hi John!",
   471          })
   472          // => {"success":true, "message":"Hi John!"}
   473      })
   474  
   475      log.Fatal(app.Listen(":3000"))
   476  }
   477  ```
   478  
   479  ### WebSocket Upgrade
   480  
   481  πŸ“– [Websocket](https://github.com/gofiber/websocket)
   482  
   483  ```go
   484  import (
   485      "github.com/boomhut/fiber/v2"
   486      "github.com/gofiber/fiber/v2/middleware/websocket"
   487  )
   488  
   489  func main() {
   490    app := fiber.New()
   491  
   492    app.Get("/ws", websocket.New(func(c *websocket.Conn) {
   493      for {
   494        mt, msg, err := c.ReadMessage()
   495        if err != nil {
   496          log.Println("read:", err)
   497          break
   498        }
   499        log.Printf("recv: %s", msg)
   500        err = c.WriteMessage(mt, msg)
   501        if err != nil {
   502          log.Println("write:", err)
   503          break
   504        }
   505      }
   506    }))
   507  
   508    log.Fatal(app.Listen(":3000"))
   509    // ws://localhost:3000/ws
   510  }
   511  ```
   512  
   513  ### Server-Sent Events
   514  
   515  πŸ“– [More Info](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)
   516  
   517  ```go
   518  import (
   519      "github.com/boomhut/fiber/v2"
   520      "github.com/valyala/fasthttp"
   521  )
   522  
   523  func main() {
   524    app := fiber.New()
   525  
   526    app.Get("/sse", func(c *fiber.Ctx) error {
   527      c.Set("Content-Type", "text/event-stream")
   528      c.Set("Cache-Control", "no-cache")
   529      c.Set("Connection", "keep-alive")
   530      c.Set("Transfer-Encoding", "chunked")
   531  
   532      c.Context().SetBodyStreamWriter(fasthttp.StreamWriter(func(w *bufio.Writer) {
   533        fmt.Println("WRITER")
   534        var i int
   535  
   536        for {
   537          i++
   538          msg := fmt.Sprintf("%d - the time is %v", i, time.Now())
   539          fmt.Fprintf(w, "data: Message: %s\n\n", msg)
   540          fmt.Println(msg)
   541  
   542          w.Flush()
   543          time.Sleep(5 * time.Second)
   544        }
   545      }))
   546  
   547      return nil
   548    })
   549  
   550    log.Fatal(app.Listen(":3000"))
   551  }
   552  ```
   553  
   554  ### Recover middleware
   555  
   556  πŸ“– [Recover](https://docs.gofiber.io/api/middleware/recover)
   557  
   558  ```go
   559  import (
   560      "github.com/boomhut/fiber/v2"
   561      "github.com/gofiber/fiber/v2/middleware/recover"
   562  )
   563  
   564  func main() {
   565      app := fiber.New()
   566  
   567      app.Use(recover.New())
   568  
   569      app.Get("/", func(c *fiber.Ctx) error {
   570          panic("normally this would crash your app")
   571      })
   572  
   573      log.Fatal(app.Listen(":3000"))
   574  }
   575  ```
   576  
   577  </details>
   578  
   579  ## 🧬 Internal Middleware
   580  
   581  Here is a list of middleware that are included within the Fiber framework.
   582  
   583  | Middleware                                                                             | Description                                                                                                                                                                  |
   584  | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   585  | [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.        |
   586  | [cache](https://github.com/gofiber/fiber/tree/master/middleware/cache)                 | Intercept and cache responses                                                                                                                                                |
   587  | [compress](https://github.com/gofiber/fiber/tree/master/middleware/compress)           | Compression middleware for Fiber, it supports `deflate`, `gzip` and `brotli` by default.                                                                                     |
   588  | [cors](https://github.com/gofiber/fiber/tree/master/middleware/cors)                   | Enable cross-origin resource sharing \(CORS\) with various options.                                                                                                          |
   589  | [csrf](https://github.com/gofiber/fiber/tree/master/middleware/csrf)                   | Protect from CSRF exploits.                                                                                                                                                  |
   590  | [encryptcookie](https://github.com/gofiber/fiber/tree/master/middleware/encryptcookie) | Encrypt middleware which encrypts cookie values.                                                                                                                             |
   591  | [envvar](https://github.com/gofiber/fiber/tree/master/middleware/envvar)               | Expose environment variables with providing an optional config.                                                                                                              |
   592  | [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.               |
   593  | [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.                                                                               |
   594  | [favicon](https://github.com/gofiber/fiber/tree/master/middleware/favicon)             | Ignore favicon from logs or serve from memory if a file path is provided.                                                                                                    |
   595  | [filesystem](https://github.com/gofiber/fiber/tree/master/middleware/filesystem)       | FileSystem middleware for Fiber, special thanks and credits to Alireza Salary                                                                                                |
   596  | [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.                                                   |
   597  | [logger](https://github.com/gofiber/fiber/tree/master/middleware/logger)               | HTTP request/response logger.                                                                                                                                                |
   598  | [monitor](https://github.com/gofiber/fiber/tree/master/middleware/monitor)             | Monitor middleware that reports server metrics, inspired by express-status-monitor                                                                                           |
   599  | [pprof](https://github.com/gofiber/fiber/tree/master/middleware/pprof)                 | Special thanks to Matthew Lee \(@mthli\)                                                                                                                                     |
   600  | [proxy](https://github.com/gofiber/fiber/tree/master/middleware/proxy)                 | Allows you to proxy requests to a multiple servers                                                                                                                           |
   601  | [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). |
   602  | [requestid](https://github.com/gofiber/fiber/tree/master/middleware/requestid)         | Adds a requestid to every request.                                                                                                                                           |
   603  | [session](https://github.com/gofiber/fiber/tree/master/middleware/session)             | Session middleware. NOTE: This middleware uses our Storage package.                                                                                                          |
   604  | [skip](https://github.com/gofiber/fiber/tree/master/middleware/skip)                   | Skip middleware that skips a wrapped handler is a predicate is true.                                                                                                         |
   605  | [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.                                                                                                |
   606  | [adaptor](https://github.com/gofiber/adaptor)     | Converter for net/http handlers to/from Fiber request handlers, special thanks to @arsmn!                                                                           |
   607  | [helmet](https://github.com/gofiber/helmet)       | Helps secure your apps by setting various HTTP headers.                                                                                                             |
   608  | [keyauth](https://github.com/gofiber/keyauth)     | Key auth middleware provides a key based authentication.                                                                                                            |
   609  | [redirect](https://github.com/gofiber/redirect)   | Redirect middleware                                                                                                                                                 |
   610  | [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. |
   611  
   612  ## 🧬 External Middleware
   613  
   614  List of externally hosted middleware modules and maintained by the [Fiber team](https://github.com/orgs/gofiber/people).
   615  
   616  | Middleware                                        | Description                                                                                                                                                         |
   617  | :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   618  | [jwt](https://github.com/gofiber/jwt)             | JWT returns a JSON Web Token \(JWT\) auth middleware.                                                                                                               |
   619  | [storage](https://github.com/gofiber/storage)     | Premade storage drivers that implement the Storage interface, designed to be used with various Fiber middlewares.                                                   |
   620  | [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.                                               |
   621  | [websocket](https://github.com/gofiber/websocket) | Based on Fasthttp WebSocket for Fiber with Locals support!                                                                                                          |
   622  
   623  ## πŸ•ΆοΈ Awesome List
   624  
   625  For more articles, middlewares, examples or tools check our [awesome list](https://github.com/gofiber/awesome-fiber).
   626  
   627  ## πŸ‘ Bijdragen
   628  
   629  Om de actieve ontwikkelingen van `Fiber` te ondersteunen of om een **bedankje** te geven:
   630  
   631  1. Voeg een [GitHub Star](https://github.com/gofiber/fiber/stargazers) toe aan het project.
   632  2. Tweet over het project [op je Twitter account](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).
   633  3. Schrijf een recensie of tutorial op [Medium](https://medium.com/), [Dev.to](https://dev.to/) of een persoonlijke blog.
   634  4. Support the project by donating a [cup of coffee](https://buymeacoff.ee/fenny).
   635  
   636  ## β˜• Supporters
   637  
   638  Fiber is an open source project that runs on donations to pay the bills e.g. our domain name, gitbook, netlify and serverless hosting. If you want to support Fiber, you can β˜• [**buy a coffee here**](https://buymeacoff.ee/fenny).
   639  
   640  |                                                            | User                                             | Donation |
   641  | :--------------------------------------------------------- | :----------------------------------------------- | :------- |
   642  | ![](https://avatars.githubusercontent.com/u/204341?s=25)   | [@destari](https://github.com/destari)           | β˜• x 10  |
   643  | ![](https://avatars.githubusercontent.com/u/63164982?s=25) | [@dembygenesis](https://github.com/dembygenesis) | β˜• x 5   |
   644  | ![](https://avatars.githubusercontent.com/u/56607882?s=25) | [@thomasvvugt](https://github.com/thomasvvugt)   | β˜• x 5   |
   645  | ![](https://avatars.githubusercontent.com/u/27820675?s=25) | [@hendratommy](https://github.com/hendratommy)   | β˜• x 5   |
   646  | ![](https://avatars.githubusercontent.com/u/1094221?s=25)  | [@ekaputra07](https://github.com/ekaputra07)     | β˜• x 5   |
   647  | ![](https://avatars.githubusercontent.com/u/194590?s=25)   | [@jorgefuertes](https://github.com/jorgefuertes) | β˜• x 5   |
   648  | ![](https://avatars.githubusercontent.com/u/186637?s=25)   | [@candidosales](https://github.com/candidosales) | β˜• x 5   |
   649  | ![](https://avatars.githubusercontent.com/u/29659953?s=25) | [@l0nax](https://github.com/l0nax)               | β˜• x 3   |
   650  | ![](https://avatars.githubusercontent.com/u/635852?s=25)   | [@bihe](https://github.com/bihe)                 | β˜• x 3   |
   651  | ![](https://avatars.githubusercontent.com/u/307334?s=25)   | [@justdave](https://github.com/justdave)         | β˜• x 3   |
   652  | ![](https://avatars.githubusercontent.com/u/11155743?s=25) | [@koddr](https://github.com/koddr)               | β˜• x 1   |
   653  | ![](https://avatars.githubusercontent.com/u/29042462?s=25) | [@lapolinar](https://github.com/lapolinar)       | β˜• x 1   |
   654  | ![](https://avatars.githubusercontent.com/u/2978730?s=25)  | [@diegowifi](https://github.com/diegowifi)       | β˜• x 1   |
   655  | ![](https://avatars.githubusercontent.com/u/44171355?s=25) | [@ssimk0](https://github.com/ssimk0)             | β˜• x 1   |
   656  | ![](https://avatars.githubusercontent.com/u/5638101?s=25)  | [@raymayemir](https://github.com/raymayemir)     | β˜• x 1   |
   657  | ![](https://avatars.githubusercontent.com/u/619996?s=25)   | [@melkorm](https://github.com/melkorm)           | β˜• x 1   |
   658  | ![](https://avatars.githubusercontent.com/u/31022056?s=25) | [@marvinjwendt](https://github.com/thomasvvugt)  | β˜• x 1   |
   659  | ![](https://avatars.githubusercontent.com/u/31921460?s=25) | [@toishy](https://github.com/toishy)             | β˜• x 1   |
   660  
   661  ## β€Žβ€πŸ’» Code Contributors
   662  
   663  <img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;">
   664  
   665  ## ⭐️ Stargazers
   666  
   667  <img src="https://starchart.cc/gofiber/fiber.svg" alt="Stargazers over time" style="max-width: 100%">
   668  
   669  ## ⚠️ License
   670  
   671  Copyright (c) 2019-present [Fenny](https://github.com/fenny) and [Contributors](https://github.com/gofiber/fiber/graphs/contributors). `Fiber` is free and open-source software licensed under the [MIT License](https://github.com/gofiber/fiber/blob/master/LICENSE). Official logo was created by [Vic ShΓ³stak](https://github.com/koddr) and distributed under [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) license (CC BY-SA 4.0 International).
   672  
   673  **Third-party library licenses**
   674  
   675  -   [colorable](https://github.com/mattn/go-colorable/blob/master/LICENSE)
   676  -   [isatty](https://github.com/mattn/go-isatty/blob/master/LICENSE)
   677  -   [runewidth](https://github.com/mattn/go-runewidth/blob/master/LICENSE)
   678  -   [fasthttp](https://github.com/valyala/fasthttp/blob/master/LICENSE)
   679  -   [bytebufferpool](https://github.com/valyala/bytebufferpool/blob/master/LICENSE)
   680  -   [dictpool](https://github.com/savsgio/dictpool/blob/master/LICENSE)
   681  -   [fwd](https://github.com/philhofer/fwd/blob/master/LICENSE.md)
   682  -   [go-ole](https://github.com/go-ole/go-ole/blob/master/LICENSE)
   683  -   [gopsutil](https://github.com/shirou/gopsutil/blob/master/LICENSE)
   684  -   [msgp](https://github.com/tinylib/msgp/blob/master/LICENSE)
   685  -   [schema](https://github.com/gorilla/schema/blob/master/LICENSE)
   686  -   [uuid](https://github.com/google/uuid/blob/master/LICENSE)
   687  -   [wmi](https://github.com/StackExchange/wmi/blob/master/LICENSE)