github.com/gofiber/fiber/v2@v2.47.0/.github/README_id.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> adalah <b>kerangka kerja web</b> yang terinspirasi dari <a href="https://github.com/expressjs/express">Express</a> yang berbasiskan <a href="https://github.com/valyala/fasthttp">Fasthttp</a>, HTTP engine paling <b>cepat</b> untuk <a href="https://go.dev/doc/">Go</a>. Dirancang untuk <b>mempermudah</b>, <b>mempercepat</b> pengembangan aplikasi dengan <b>alokasi memori nol-nya</b> serta <b>kinerja</b> yang selalu diperhatikan.
    94  </p>
    95  
    96  ## ⚑️ Cara Memulai
    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("Hello, World πŸ‘‹!")
   108      })
   109  
   110      app.Listen(":3000")
   111  }
   112  ```
   113  
   114  ## πŸ€– Pengukuran Kinerja
   115  
   116  Pengukuran ini dilakukan oleh [TechEmpower](https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext) dan [Go Web](https://github.com/smallnest/go-web-framework-benchmark). Apabila anda ingin melihat hasil lengkapnya, silahkan kunjungi halaman [Wiki](https://docs.gofiber.io/extra/benchmarks) kami.
   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  ## βš™οΈ Instalasi
   124  
   125  Pastikan kamu sudah menginstalasi Golang ([unduh](https://go.dev/dl/)). Dengan versi `1.17` atau lebih tinggi [ Direkomendasikan ].
   126  
   127  Inisialisasi proyek kamu dengan membuat folder lalu jalankan `go mod init github.com/nama-kamu/repo` ([belajar lebih banyak](https://go.dev/blog/using-go-modules)) di dalam folder. Kemudian instal Fiber dengan perintah [`go get`](https://pkg.go.dev/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them):
   128  
   129  ```bash
   130  go get -u github.com/gofiber/fiber/v2
   131  ```
   132  
   133  ## 🎯 Fitur
   134  
   135  -   Sistem [Routing](https://docs.gofiber.io/guide/routing) yang padu
   136  -   Menyajikan [file statis](https://docs.gofiber.io/api/app#static)
   137  -   [Kinerja](https://docs.gofiber.io/extra/benchmarks) ekstrim
   138  -   [Penggunaan memori](https://docs.gofiber.io/extra/benchmarks) yang kecil
   139  -   Cocok untuk [API](https://docs.gofiber.io/api/ctx)
   140  -   Mendukung Middleware & [Next](https://docs.gofiber.io/api/ctx#next) seperti Express
   141  -   Kembangkan aplikasi dengan [Cepat](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497)
   142  -   [Template engines](https://github.com/gofiber/template)
   143  -   [Mendukung 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  -   Tersedia dalam [18 bahasa](https://docs.gofiber.io/)
   147  -   Dan masih banyak lagi, [kunjungi Fiber](https://docs.gofiber.io/)
   148  
   149  ## πŸ’‘ Filosofi
   150  
   151  Bagi yang baru yang beralih dari [Node.js](https://nodejs.org/en/about/) ke [Go](https://go.dev/doc/) terkadang perlu waktu yang cukup lama sebelum mereka mampu membuat aplikasi web dengan Go. Fiber, sebagai **kerangka kerja web** dirancang secara **minimalis** dan mengikuti filosofi dari **UNIX**, sehingga pengguna baru dapat dengan cepat memasuki dunia Go dengan sambutan yang hangat dan dapat diandalkan.
   152  
   153  Fiber terinspirasi dari Express, salah satu kerangka kerja web yang paling terkenal di Internet. Kami menggabungkan **kemudahan** dari Express dan **kinerja luar biasa** dari Go. Apabila anda pernah membuat aplikasi dengan Node.js (_dengan Express atau yang lainnya_), maka banyak metode dan prinsip yang akan terasa **sangat umum** bagi anda.
   154  
   155  Kami **mendengarkan** para pengguna di [GitHub Issues](https://github.com/gofiber/fiber/issues), Discord [channel](https://gofiber.io/discord), _dan berbagai platform lainnya_ untuk menciptakan kerangka kerja web yang **cepat**, **fleksibel** dan **bersahabat** untuk berbagai macam keperluan, **tenggat waktu** dan **keahlian** para pengguna! Sama halnya seperti yang dilakukan Express di dunia JavaScript.
   156  
   157  ## ⚠️ Limitasi
   158  
   159  * Karena penggunaan Fiber yang tidak aman, perpustakaan mungkin tidak selalu kompatibel dengan versi Go terbaru. Fiber 2.40.0 telah diuji dengan Go versi 1.17 hingga 1.20.
   160  * Fiber tidak kompatibel dengan antarmuka net/http. Ini berarti kamu tidak akan dapat menggunakan proyek seperti gqlgen, go-swagger, atau lainnya yang merupakan bagian dari ekosistem net/http.
   161  
   162  ## πŸ‘€ Contoh
   163  
   164  Dibawah ini terdapat beberapa contoh penggunaan. Jika anda ingin melihat contoh lainnya, silahkan kunjungi [Gudang resep](https://github.com/gofiber/recipes) atau kunjungi [Dokumentasi API](https://docs.gofiber.io) kami.
   165  
   166  #### πŸ“– [**Routing Dasar**](https://docs.gofiber.io/#basic-routing)
   167  
   168  ```go
   169  func main() {
   170      app := fiber.New()
   171  
   172      // GET /api/register
   173      app.Get("/api/*", func(c *fiber.Ctx) error {
   174          msg := fmt.Sprintf("βœ‹ %s", c.Params("*"))
   175          return c.SendString(msg) // => βœ‹ register
   176      })
   177  
   178      // GET /flights/LAX-SFO
   179      app.Get("/flights/:from-:to", func(c *fiber.Ctx) error {
   180          msg := fmt.Sprintf("πŸ’Έ From: %s, To: %s", c.Params("from"), c.Params("to"))
   181          return c.SendString(msg) // => πŸ’Έ From: LAX, To: SFO
   182      })
   183  
   184      // GET /dictionary.txt
   185      app.Get("/:file.:ext", func(c *fiber.Ctx) error {
   186          msg := fmt.Sprintf("πŸ“ƒ %s.%s", c.Params("file"), c.Params("ext"))
   187          return c.SendString(msg) // => πŸ“ƒ dictionary.txt
   188      })
   189  
   190      // GET /john/75
   191      app.Get("/:name/:age/:gender?", func(c *fiber.Ctx) error {
   192          msg := fmt.Sprintf("πŸ‘΄ %s is %s years old", c.Params("name"), c.Params("age"))
   193          return c.SendString(msg) // => πŸ‘΄ john is 75 years old
   194      })
   195  
   196      // GET /john
   197      app.Get("/:name", func(c *fiber.Ctx) error {
   198          msg := fmt.Sprintf("Hello, %s πŸ‘‹!", c.Params("name"))
   199          return c.SendString(msg) // => Hello john πŸ‘‹!
   200      })
   201  
   202      log.Fatal(app.Listen(":3000"))
   203  }
   204  
   205  ```
   206  
   207  #### πŸ“– [**Penamaan Route**](https://docs.gofiber.io/api/app#name)
   208  
   209  ```go
   210  func main() {
   211      app := fiber.New()
   212  
   213      // GET /api/register
   214      app.Get("/api/*", func(c *fiber.Ctx) error {
   215          msg := fmt.Sprintf("βœ‹ %s", c.Params("*"))
   216          return c.SendString(msg) // => βœ‹ register
   217      }).Name("api")
   218  
   219      data, _ := json.MarshalIndent(app.GetRoute("api"), "", "  ")
   220      fmt.Print(string(data))
   221      // Prints:
   222      // {
   223      //    "method": "GET",
   224      //    "name": "api",
   225      //    "path": "/api/*",
   226      //    "params": [
   227      //      "*1"
   228      //    ]
   229      // }
   230  
   231  
   232      log.Fatal(app.Listen(":3000"))
   233  }
   234  
   235  ```
   236  
   237  #### πŸ“– [**Menyajikan File Statis**](https://docs.gofiber.io/api/app#static)
   238  
   239  ```go
   240  func main() {
   241      app := fiber.New()
   242  
   243      app.Static("/", "./public")
   244      // => http://localhost:3000/js/script.js
   245      // => http://localhost:3000/css/style.css
   246  
   247      app.Static("/prefix", "./public")
   248      // => http://localhost:3000/prefix/js/script.js
   249      // => http://localhost:3000/prefix/css/style.css
   250  
   251      app.Static("*", "./public/index.html")
   252      // => http://localhost:3000/any/path/shows/index/html
   253  
   254      log.Fatal(app.Listen(":3000"))
   255  }
   256  
   257  ```
   258  
   259  #### πŸ“– [**Middleware & Next**](https://docs.gofiber.io/api/ctx#next)
   260  
   261  ```go
   262  func main() {
   263  	app := fiber.New()
   264  
   265  	// Match any route
   266  	app.Use(func(c *fiber.Ctx) error {
   267  		fmt.Println("πŸ₯‡ First handler")
   268  		return c.Next()
   269  	})
   270  
   271  	// Match all routes starting with /api
   272  	app.Use("/api", func(c *fiber.Ctx) error {
   273  		fmt.Println("πŸ₯ˆ Second handler")
   274  		return c.Next()
   275  	})
   276  
   277  	// GET /api/register
   278  	app.Get("/api/list", func(c *fiber.Ctx) error {
   279  		fmt.Println("πŸ₯‰ Last handler")
   280  		return c.SendString("Hello, World πŸ‘‹!")
   281  	})
   282  
   283  	log.Fatal(app.Listen(":3000"))
   284  }
   285  
   286  ```
   287  
   288  <details>
   289    <summary>πŸ“š Tampilkan lebih banyak contoh kode</summary>
   290  
   291  ### Views engines
   292  
   293  πŸ“– [Config](https://docs.gofiber.io/api/fiber#config)
   294  πŸ“– [Engines](https://github.com/gofiber/template)
   295  πŸ“– [Render](https://docs.gofiber.io/api/ctx#render)
   296  
   297  Fiber mengalihkan ke [html/template](https://pkg.go.dev/html/template/) saat tidak ada mesin tampilan yang disetel.
   298  
   299  Jika kamu ingin menjalankan sebagian atau menggunakan mesin yang berbeda seperti [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache) atau [pug](https://github.com/Joker/jade) dan lain-lain..
   300  
   301  Lihat paket [contoh](https://github.com/gofiber/template) kami yang mendukung beberapa mesin tampilan.
   302  
   303  ```go
   304  package main
   305  
   306  import (
   307      "github.com/gofiber/fiber/v2"
   308      "github.com/gofiber/template/pug"
   309  )
   310  
   311  func main() {
   312      // You can setup Views engine before initiation app:
   313      app := fiber.New(fiber.Config{
   314          Views: pug.New("./views", ".pug"),
   315      })
   316  
   317      // And now, you can call template `./views/home.pug` like this:
   318      app.Get("/", func(c *fiber.Ctx) error {
   319          return c.Render("home", fiber.Map{
   320              "title": "Homepage",
   321              "year":  1999,
   322          })
   323      })
   324  
   325      log.Fatal(app.Listen(":3000"))
   326  }
   327  ```
   328  
   329  ### Grouping routes into chains
   330  
   331  πŸ“– [Group](https://docs.gofiber.io/api/app#group)
   332  
   333  ```go
   334  func middleware(c *fiber.Ctx) error {
   335      fmt.Println("Don't mind me!")
   336      return c.Next()
   337  }
   338  
   339  func handler(c *fiber.Ctx) error {
   340      return c.SendString(c.Path())
   341  }
   342  
   343  func main() {
   344      app := fiber.New()
   345  
   346      // Root API route
   347      api := app.Group("/api", middleware) // /api
   348  
   349      // API v1 routes
   350      v1 := api.Group("/v1", middleware) // /api/v1
   351      v1.Get("/list", handler)           // /api/v1/list
   352      v1.Get("/user", handler)           // /api/v1/user
   353  
   354      // API v2 routes
   355      v2 := api.Group("/v2", middleware) // /api/v2
   356      v2.Get("/list", handler)           // /api/v2/list
   357      v2.Get("/user", handler)           // /api/v2/user
   358  
   359      // ...
   360  }
   361  
   362  ```
   363  
   364  ### Middleware logger
   365  
   366  πŸ“– [Logger](https://docs.gofiber.io/api/middleware/logger)
   367  
   368  ```go
   369  package main
   370  
   371  import (
   372      "log"
   373  
   374      "github.com/gofiber/fiber/v2"
   375      "github.com/gofiber/fiber/v2/middleware/logger"
   376  )
   377  
   378  func main() {
   379      app := fiber.New()
   380  
   381      app.Use(logger.New())
   382  
   383      // ...
   384  
   385      log.Fatal(app.Listen(":3000"))
   386  }
   387  ```
   388  
   389  ### Cross-Origin Resource Sharing (CORS)
   390  
   391  πŸ“– [CORS](https://docs.gofiber.io/api/middleware/cors)
   392  
   393  ```go
   394  import (
   395      "log"
   396  
   397      "github.com/gofiber/fiber/v2"
   398      "github.com/gofiber/fiber/v2/middleware/cors"
   399  )
   400  
   401  func main() {
   402      app := fiber.New()
   403  
   404      app.Use(cors.New())
   405  
   406      // ...
   407  
   408      log.Fatal(app.Listen(":3000"))
   409  }
   410  ```
   411  
   412  Periksa CORS dengan meneruskan domain apa pun di `Origin` header:
   413  
   414  ```bash
   415  curl -H "Origin: http://example.com" --verbose http://localhost:3000
   416  ```
   417  
   418  ### Custom 404 response
   419  
   420  πŸ“– [HTTP Methods](https://docs.gofiber.io/api/ctx#status)
   421  
   422  ```go
   423  func main() {
   424      app := fiber.New()
   425  
   426      app.Static("/", "./public")
   427  
   428      app.Get("/demo", func(c *fiber.Ctx) error {
   429          return c.SendString("This is a demo!")
   430      })
   431  
   432      app.Post("/register", func(c *fiber.Ctx) error {
   433          return c.SendString("Welcome!")
   434      })
   435  
   436      // Last middleware to match anything
   437      app.Use(func(c *fiber.Ctx) error {
   438          return c.SendStatus(404)
   439          // => 404 "Not Found"
   440      })
   441  
   442      log.Fatal(app.Listen(":3000"))
   443  }
   444  ```
   445  
   446  ### JSON Response
   447  
   448  πŸ“– [JSON](https://docs.gofiber.io/api/ctx#json)
   449  
   450  ```go
   451  type User struct {
   452      Name string `json:"name"`
   453      Age  int    `json:"age"`
   454  }
   455  
   456  func main() {
   457      app := fiber.New()
   458  
   459      app.Get("/user", func(c *fiber.Ctx) error {
   460          return c.JSON(&User{"John", 20})
   461          // => {"name":"John", "age":20}
   462      })
   463  
   464      app.Get("/json", func(c *fiber.Ctx) error {
   465          return c.JSON(fiber.Map{
   466              "success": true,
   467              "message": "Hi John!",
   468          })
   469          // => {"success":true, "message":"Hi John!"}
   470      })
   471  
   472      log.Fatal(app.Listen(":3000"))
   473  }
   474  ```
   475  
   476  ### WebSocket Upgrade
   477  
   478  πŸ“– [Websocket](https://github.com/gofiber/websocket)
   479  
   480  ```go
   481  import (
   482      "github.com/gofiber/fiber/v2"
   483      "github.com/gofiber/fiber/v2/middleware/websocket"
   484  )
   485  
   486  func main() {
   487    app := fiber.New()
   488  
   489    app.Get("/ws", websocket.New(func(c *websocket.Conn) {
   490      for {
   491        mt, msg, err := c.ReadMessage()
   492        if err != nil {
   493          log.Println("read:", err)
   494          break
   495        }
   496        log.Printf("recv: %s", msg)
   497        err = c.WriteMessage(mt, msg)
   498        if err != nil {
   499          log.Println("write:", err)
   500          break
   501        }
   502      }
   503    }))
   504  
   505    log.Fatal(app.Listen(":3000"))
   506    // ws://localhost:3000/ws
   507  }
   508  ```
   509  
   510  ### Server-Sent Events
   511  
   512  πŸ“– [Informasi lebih lanjut](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)
   513  
   514  ```go
   515  import (
   516      "github.com/gofiber/fiber/v2"
   517      "github.com/valyala/fasthttp"
   518  )
   519  
   520  func main() {
   521    app := fiber.New()
   522  
   523    app.Get("/sse", func(c *fiber.Ctx) error {
   524      c.Set("Content-Type", "text/event-stream")
   525      c.Set("Cache-Control", "no-cache")
   526      c.Set("Connection", "keep-alive")
   527      c.Set("Transfer-Encoding", "chunked")
   528  
   529      c.Context().SetBodyStreamWriter(fasthttp.StreamWriter(func(w *bufio.Writer) {
   530        fmt.Println("WRITER")
   531        var i int
   532  
   533        for {
   534          i++
   535          msg := fmt.Sprintf("%d - the time is %v", i, time.Now())
   536          fmt.Fprintf(w, "data: Message: %s\n\n", msg)
   537          fmt.Println(msg)
   538  
   539          w.Flush()
   540          time.Sleep(5 * time.Second)
   541        }
   542      }))
   543  
   544      return nil
   545    })
   546  
   547    log.Fatal(app.Listen(":3000"))
   548  }
   549  ```
   550  
   551  ### Recover middleware
   552  
   553  πŸ“– [Recover](https://docs.gofiber.io/api/middleware/recover)
   554  
   555  ```go
   556  import (
   557      "github.com/gofiber/fiber/v2"
   558      "github.com/gofiber/fiber/v2/middleware/recover"
   559  )
   560  
   561  func main() {
   562      app := fiber.New()
   563  
   564      app.Use(recover.New())
   565  
   566      app.Get("/", func(c *fiber.Ctx) error {
   567          panic("normally this would crash your app")
   568      })
   569  
   570      log.Fatal(app.Listen(":3000"))
   571  }
   572  ```
   573  
   574  </details>
   575  
   576  ## 🧬 Middleware Internal
   577  
   578  Kumpulan `middleware` yang ada didalam kerangka kerja Fiber.
   579  
   580  | Middleware                                                                             | Description                                                                                                                                                                  |
   581  | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   582  | [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.        |
   583  | [cache](https://github.com/gofiber/fiber/tree/master/middleware/cache)                 | Intercept and cache responses                                                                                                                                                |
   584  | [compress](https://github.com/gofiber/fiber/tree/master/middleware/compress)           | Compression middleware for Fiber, it supports `deflate`, `gzip` and `brotli` by default.                                                                                     |
   585  | [cors](https://github.com/gofiber/fiber/tree/master/middleware/cors)                   | Enable cross-origin resource sharing \(CORS\) with various options.                                                                                                          |
   586  | [csrf](https://github.com/gofiber/fiber/tree/master/middleware/csrf)                   | Protect from CSRF exploits.                                                                                                                                                  |
   587  | [encryptcookie](https://github.com/gofiber/fiber/tree/master/middleware/encryptcookie) | Encrypt middleware which encrypts cookie values.                                                                                                                             |
   588  | [envvar](https://github.com/gofiber/fiber/tree/master/middleware/envvar)               | Expose environment variables with providing an optional config.                                                                                                              |
   589  | [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.               |
   590  | [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.                                                                               |
   591  | [favicon](https://github.com/gofiber/fiber/tree/master/middleware/favicon)             | Ignore favicon from logs or serve from memory if a file path is provided.                                                                                                    |
   592  | [filesystem](https://github.com/gofiber/fiber/tree/master/middleware/filesystem)       | FileSystem middleware for Fiber, special thanks and credits to Alireza Salary                                                                                                |
   593  | [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.                                                   |
   594  | [logger](https://github.com/gofiber/fiber/tree/master/middleware/logger)               | HTTP request/response logger.                                                                                                                                                |
   595  | [monitor](https://github.com/gofiber/fiber/tree/master/middleware/monitor)             | Monitor middleware that reports server metrics, inspired by express-status-monitor                                                                                           |
   596  | [pprof](https://github.com/gofiber/fiber/tree/master/middleware/pprof)                 | Special thanks to Matthew Lee \(@mthli\)                                                                                                                                     |
   597  | [proxy](https://github.com/gofiber/fiber/tree/master/middleware/proxy)                 | Allows you to proxy requests to a multiple servers                                                                                                                           |
   598  | [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). |
   599  | [requestid](https://github.com/gofiber/fiber/tree/master/middleware/requestid)         | Adds a requestid to every request.                                                                                                                                           |
   600  | [session](https://github.com/gofiber/fiber/tree/master/middleware/session)             | Session middleware. NOTE: This middleware uses our Storage package.                                                                                                          |
   601  | [skip](https://github.com/gofiber/fiber/tree/master/middleware/skip)                   | Skip middleware that skips a wrapped handler is a predicate is true.                                                                                                         |
   602  | [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.                                                                                                |
   603  | [keyauth](https://github.com/gofiber/keyauth)     | Key auth middleware provides a key based authentication.                                                                                                            |
   604  | [redirect](https://github.com/gofiber/redirect)   | Redirect middleware                                                                                                                                                 |
   605  | [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. |
   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  
   609  ## 🧬 Middleware External
   610  
   611  Kumpulan `middleware` yang dihost external dan diurus oleh [Tim Fiber](https://github.com/orgs/gofiber/people).
   612  
   613  | Middleware                                        | Description                                                                                                                                                         |
   614  | :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   615  | [jwt](https://github.com/gofiber/jwt)             | JWT returns a JSON Web Token \(JWT\) auth middleware.                                                                                                               |
   616  | [storage](https://github.com/gofiber/storage)     | Premade storage drivers that implement the Storage interface, designed to be used with various Fiber middlewares.                                                   |
   617  | [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.                                               |
   618  | [websocket](https://github.com/gofiber/websocket) | Based on Fasthttp WebSocket for Fiber with Locals support!                                                                                                          |
   619  
   620  ## πŸ•ΆοΈ Awesome List
   621  
   622  Untuk artikel lainnya, middlewares, contoh atau tools check kami [awesome list](https://github.com/gofiber/awesome-fiber).
   623  
   624  ## πŸ‘ Berkontribusi
   625  
   626  Apabila anda ingin mengucapkan **terima kasih** dan/atau mendukung pengembangan `Fiber`:
   627  
   628  1. Berikan bintang atau [GitHub Star](https://github.com/gofiber/fiber/stargazers) ke proyek ini.
   629  2. Bagikan [di Twitter anda](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).
   630  3. Buat ulasan atau tutorial di [Medium](https://medium.com/), [Dev.to](https://dev.to/) atau blog pribadi anda.
   631  4. Dukung proyek ini dengan membelikan [secangkir kopi](https://buymeacoff.ee/fenny).
   632  
   633  ## β˜• Pendukung
   634  
   635  Fiber adalah proyek sumber terbuka yang beroperasi dalam donasi untuk membayar tagihan, seperti nama domain, _gitbook, netlify_ dan _serverless hosting_. Jika anda mau mendukung Fiber, anda dapat [**membelikan kami kopi disini**](https://buymeacoff.ee/fenny).
   636  
   637  |                                                            | User                                             | Donation |
   638  | :--------------------------------------------------------- | :----------------------------------------------- | :------- |
   639  | ![](https://avatars.githubusercontent.com/u/204341?s=25)   | [@destari](https://github.com/destari)           | β˜• x 10  |
   640  | ![](https://avatars.githubusercontent.com/u/63164982?s=25) | [@dembygenesis](https://github.com/dembygenesis) | β˜• x 5   |
   641  | ![](https://avatars.githubusercontent.com/u/56607882?s=25) | [@thomasvvugt](https://github.com/thomasvvugt)   | β˜• x 5   |
   642  | ![](https://avatars.githubusercontent.com/u/27820675?s=25) | [@hendratommy](https://github.com/hendratommy)   | β˜• x 5   |
   643  | ![](https://avatars.githubusercontent.com/u/1094221?s=25)  | [@ekaputra07](https://github.com/ekaputra07)     | β˜• x 5   |
   644  | ![](https://avatars.githubusercontent.com/u/194590?s=25)   | [@jorgefuertes](https://github.com/jorgefuertes) | β˜• x 5   |
   645  | ![](https://avatars.githubusercontent.com/u/186637?s=25)   | [@candidosales](https://github.com/candidosales) | β˜• x 5   |
   646  | ![](https://avatars.githubusercontent.com/u/29659953?s=25) | [@l0nax](https://github.com/l0nax)               | β˜• x 3   |
   647  | ![](https://avatars.githubusercontent.com/u/635852?s=25)   | [@bihe](https://github.com/bihe)                 | β˜• x 3   |
   648  | ![](https://avatars.githubusercontent.com/u/307334?s=25)   | [@justdave](https://github.com/justdave)         | β˜• x 3   |
   649  | ![](https://avatars.githubusercontent.com/u/11155743?s=25) | [@koddr](https://github.com/koddr)               | β˜• x 1   |
   650  | ![](https://avatars.githubusercontent.com/u/29042462?s=25) | [@lapolinar](https://github.com/lapolinar)       | β˜• x 1   |
   651  | ![](https://avatars.githubusercontent.com/u/2978730?s=25)  | [@diegowifi](https://github.com/diegowifi)       | β˜• x 1   |
   652  | ![](https://avatars.githubusercontent.com/u/44171355?s=25) | [@ssimk0](https://github.com/ssimk0)             | β˜• x 1   |
   653  | ![](https://avatars.githubusercontent.com/u/5638101?s=25)  | [@raymayemir](https://github.com/raymayemir)     | β˜• x 1   |
   654  | ![](https://avatars.githubusercontent.com/u/619996?s=25)   | [@melkorm](https://github.com/melkorm)           | β˜• x 1   |
   655  | ![](https://avatars.githubusercontent.com/u/31022056?s=25) | [@marvinjwendt](https://github.com/thomasvvugt)  | β˜• x 1   |
   656  | ![](https://avatars.githubusercontent.com/u/31921460?s=25) | [@toishy](https://github.com/toishy)             | β˜• x 1   |
   657  
   658  ## β€Žβ€πŸ’» Kontributor Kode
   659  
   660  <img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;">
   661  
   662  ## ⭐️ Pengamat bintang
   663  
   664  <img src="https://starchart.cc/gofiber/fiber.svg" alt="Stargazers over time" style="max-width: 100%">
   665  
   666  ## ⚠️ Lisensi
   667  
   668  Copyright (c) 2019-present [Fenny](https://github.com/fenny) and [Contributors](https://github.com/gofiber/fiber/graphs/contributors). `Fiber` adalah proyek gratis dan open-source dibawah [lisensi MIT](https://github.com/gofiber/fiber/blob/master/LICENSE). Logo resmi diciptakan oleh [Vic ShΓ³stak](https://github.com/koddr) dan didistribusikan dalam lisensi [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) (CC BY-SA 4.0 International).
   669  
   670  **Lisensi perpustakaan pihak-ketiga**
   671  
   672  -   [colorable](https://github.com/mattn/go-colorable/blob/master/LICENSE)
   673  -   [isatty](https://github.com/mattn/go-isatty/blob/master/LICENSE)
   674  -   [runewidth](https://github.com/mattn/go-runewidth/blob/master/LICENSE)
   675  -   [fasthttp](https://github.com/valyala/fasthttp/blob/master/LICENSE)
   676  -   [bytebufferpool](https://github.com/valyala/bytebufferpool/blob/master/LICENSE)
   677  -   [dictpool](https://github.com/savsgio/dictpool/blob/master/LICENSE)
   678  -   [fwd](https://github.com/philhofer/fwd/blob/master/LICENSE.md)
   679  -   [go-ole](https://github.com/go-ole/go-ole/blob/master/LICENSE)
   680  -   [gopsutil](https://github.com/shirou/gopsutil/blob/master/LICENSE)
   681  -   [msgp](https://github.com/tinylib/msgp/blob/master/LICENSE)
   682  -   [schema](https://github.com/gorilla/schema/blob/master/LICENSE)
   683  -   [uuid](https://github.com/google/uuid/blob/master/LICENSE)
   684  -   [wmi](https://github.com/StackExchange/wmi/blob/master/LICENSE)
   685