Files

83 lines
68 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"code": 200,
"data": {
"description": "Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple Hello world server up and running.",
"external": {
"alternate": {
"https://docs.dartrelic.dev/getting-started/hello-world-example": {
"data-rh": "true",
"hreflang": "x-default"
}
},
"canonical": {
"https://docs.dartrelic.dev/getting-started/hello-world-example": {
"data-rh": "true"
}
},
"icon": {
"https://docs.dartrelic.dev/img/favicon.png": {
"data-rh": "true"
}
},
"preconnect": {
"https://www.google-analytics.com/": {},
"https://www.googletagmanager.com/": {}
},
"prefetch": {
"https://docs.dartrelic.dev/assets/js/0ca634c5.c40e5698.js": {},
"https://docs.dartrelic.dev/assets/js/17896441.35fb8100.js": {},
"https://docs.dartrelic.dev/assets/js/22dd74f7.32b10889.js": {},
"https://docs.dartrelic.dev/assets/js/2c10348c.c38ae9dc.js": {},
"https://docs.dartrelic.dev/assets/js/2dc195cc.c7b109bb.js": {},
"https://docs.dartrelic.dev/assets/js/441e1055.6248ef14.js": {},
"https://docs.dartrelic.dev/assets/js/4edc808e.d18ceb40.js": {},
"https://docs.dartrelic.dev/assets/js/5b00fbf1.0fa3fba9.js": {},
"https://docs.dartrelic.dev/assets/js/5e95c892.753674ac.js": {},
"https://docs.dartrelic.dev/assets/js/6783a3b2.0aa1428a.js": {},
"https://docs.dartrelic.dev/assets/js/9412f430.c708638d.js": {},
"https://docs.dartrelic.dev/assets/js/9576f52c.f029d9c3.js": {},
"https://docs.dartrelic.dev/assets/js/a7bd4aaa.b870ce93.js": {},
"https://docs.dartrelic.dev/assets/js/a94703ab.055f41b9.js": {},
"https://docs.dartrelic.dev/assets/js/a9685393.8fdc4764.js": {},
"https://docs.dartrelic.dev/assets/js/aba21aa0.1d722264.js": {},
"https://docs.dartrelic.dev/assets/js/aca04f59.28672d9f.js": {},
"https://docs.dartrelic.dev/assets/js/b4e2adc5.e5a3b2b2.js": {},
"https://docs.dartrelic.dev/assets/js/b685e31b.f5eb8692.js": {},
"https://docs.dartrelic.dev/assets/js/be2b5817.53d9f078.js": {},
"https://docs.dartrelic.dev/assets/js/c644a7fe.ad3a69e0.js": {},
"https://docs.dartrelic.dev/assets/js/c678908c.c170f033.js": {},
"https://docs.dartrelic.dev/assets/js/f22cf6c3.3fb896a1.js": {}
}
},
"html": "<html lang=\"en\" dir=\"ltr\" class=\"docs-wrapper plugin-docs plugin-id-default docs-version-1.0.0 docs-doc-page docs-doc-id-getting-started/hello-world-example\" data-has-hydrated=\"true\" data-theme=\"light\" data-theme-choice=\"system\" data-rh=\"lang,dir,class,data-has-hydrated\"><head>\n<meta charset=\"UTF-8\">\n<meta name=\"generator\" content=\"Docusaurus v3.9.2\">\n<title>Hello world | Relic</title><meta data-rh=\"true\" name=\"twitter:card\" content=\"summary_large_image\"><meta data-rh=\"true\" property=\"og:url\" content=\"https://docs.dartrelic.dev/getting-started/hello-world-example\"><meta data-rh=\"true\" property=\"og:locale\" content=\"en\"><meta data-rh=\"true\" name=\"docusaurus_locale\" content=\"en\"><meta data-rh=\"true\" name=\"docsearch:language\" content=\"en\"><link data-rh=\"true\" rel=\"icon\" href=\"/img/favicon.png\"><link data-rh=\"true\" rel=\"canonical\" href=\"https://docs.dartrelic.dev/getting-started/hello-world-example\"><link data-rh=\"true\" rel=\"alternate\" href=\"https://docs.dartrelic.dev/getting-started/hello-world-example\" hreflang=\"en\"><link data-rh=\"true\" rel=\"alternate\" href=\"https://docs.dartrelic.dev/getting-started/hello-world-example\" hreflang=\"x-default\"><link rel=\"preconnect\" href=\"https://www.google-analytics.com\">\n<link rel=\"preconnect\" href=\"https://www.googletagmanager.com\">\n<script async=\"\" src=\"https://www.googletagmanager.com/gtag/js?id=G-0EYLJMP04H\"></script>\n<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag(\"js\",new Date),gtag(\"config\",\"G-0EYLJMP04H\",{anonymize_ip:!0})</script><link rel=\"stylesheet\" href=\"/assets/css/styles.5c32dd38.css\">\n<script src=\"/assets/js/runtime~main.75ddcb03.js\" defer=\"defer\"></script>\n<script src=\"/assets/js/main.e1e75f7d.js\" defer=\"defer\"></script>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" data-rh=\"true\"><meta name=\"docusaurus_version\" content=\"1.0.0\" data-rh=\"true\"><meta name=\"docusaurus_tag\" content=\"docs-default-1.0.0\" data-rh=\"true\"><meta name=\"docsearch:version\" content=\"1.0.0\" data-rh=\"true\"><meta name=\"docsearch:docusaurus_tag\" content=\"docs-default-1.0.0\" data-rh=\"true\"><meta property=\"og:title\" content=\"Hello world | Relic\" data-rh=\"true\"><meta name=\"description\" content=\"Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple Hello world server up and running.\" data-rh=\"true\"><meta property=\"og:description\" content=\"Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple Hello world server up and running.\" data-rh=\"true\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/c678908c.c170f033.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/2dc195cc.c7b109bb.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/a9685393.8fdc4764.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/be2b5817.53d9f078.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/aca04f59.28672d9f.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/6783a3b2.0aa1428a.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/9412f430.c708638d.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/5b00fbf1.0fa3fba9.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/b685e31b.f5eb8692.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/4edc808e.d18ceb40.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/b685e31b.f5eb8692.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/4edc808e.d18ceb40.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/f22cf6c3.3fb896a1.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/9576f52c.f029d9c3.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/441e1055.6248ef14.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/2c10348c.c38ae9dc.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/c644a7fe.ad3a69e0.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/5e95c892.753674ac.js\"><link rel=\"prefetch\" href=\"/assets/js/aba21aa0.1d722264.js\"><link rel=\"prefetch\" href=\"/assets/js/a7bd4aaa.b870ce93.js\"><link rel=\"prefetch\" href=\"/assets/js/22dd74f7.32b10889.js\"><link rel=\"prefetch\" href=\"/assets/js/a94703ab.055f41b9.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/0ca634c5.c40e5698.js\"><link rel=\"prefetch\" href=\"/assets/js/17896441.35fb8100.js\"><link rel=\"prefetch\" href=\"/assets/js/b4e2adc5.e5a3b2b2.js\"></head>\n<body class=\"navigation-with-keyboard\" data-rh=\"class\" style=\"overflow: visible;\">\n<svg style=\"display: none;\"><defs>\n<symbol id=\"theme-svg-external-link\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z\"></path></symbol>\n</defs></svg>\n<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get(\"docusaurus-theme\")}catch(t){}}()||function(){try{return window.localStorage.getItem(\"theme\")}catch(t){}}();document.documentElement.setAttribute(\"data-theme\",t||(window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\")),document.documentElement.setAttribute(\"data-theme-choice\",t||\"system\")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith(\"docusaurus-data-\")){var a=t.replace(\"docusaurus-data-\",\"data-\");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=\"__docusaurus\"><link rel=\"preload\" as=\"image\" href=\"/img/logo-horizontal.svg\"><link rel=\"preload\" as=\"image\" href=\"/img/logo-horizontal-dark.svg\"><div role=\"region\" aria-label=\"Skip to main content\"><a class=\"skipToContent_fXgn\" href=\"#__docusaurus_skipToContent_fallback\">Skip to main content</a></div><nav aria-label=\"Main\" class=\"theme-layout-navbar navbar navbar--fixed-top\"><div class=\"navbar__inner\"><div class=\"theme-layout-navbar-left navbar__items\"><button aria-label=\"Toggle navigation bar\" aria-expanded=\"false\" class=\"navbar__toggle clean-btn\" type=\"button\"><svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" aria-hidden=\"true\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"2\" d=\"M4 7h22M4 15h22M4 23h22\"></path></svg></button><a href=\"https://serverpod.dev\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"navbar__brand\"><div class=\"navbar__logo\"><img src=\"/img/logo-horizontal.svg\" alt=\"Serverpod Logo\" class=\"themedComponent_mlkZ themedComponent--light_NVdE\"></div></a><div class=\"navbar__item dropdown dropdown--hoverable\"><a aria-current=\"page\" class=\"navbar__link active\" aria-haspopup=\"true\" aria-expanded=\"false\" role=\"button\" href=\"/getting-started/hello-world-example\">1.0.0</a><ul class=\"dropdown__menu\"><li><a class=\"dropdown__link\" href=\"/next/getting-started/hello-world-example\">Next</a></li><li><a aria-current=\"page\" class=\"dropdown__link dropdown__link--active\" href=\"/getting-started/hello-world-example\">1.0.0</a></li></ul></div></div><div class=\"theme-layout-navbar-right navbar__items navbar__items--right\"><a href=\"https://pub.dev/documentation/relic/latest/relic/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"navbar__item navbar__link\">API Reference<svg width=\"13.5\" height=\"13.5\" aria-label=\"(opens in new tab)\" class=\"iconExternalLink_nPIU\"><use href=\"#theme-svg-external-link\"></use></svg></a><a href=\"https://careers.serverpod.dev/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"navbar__item navbar__link\">Career<svg width=\"13.5\" height=\"13.5\" aria-label=\"(opens in new tab)\" class=\"iconExternalLink_nPIU\"><use href=\"#theme-svg-external-link\"></use></svg></a><a href=\"https://twitter.com/ServerpodDev\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"navbar__item navbar__link\">Twitter<svg width=\"13.5\" height=\"13.5\" aria-label=\"(opens in new tab)\" class=\"iconExternalLink_nPIU\"><use href=\"#theme-svg-external-link\"></use></svg></a><a href=\"https://github.com/serverpod/relic\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"navbar__item navbar__link\">GitHub<svg width=\"13.5\" height=\"13.5\" aria-label=\"(opens in new tab)\" class=\"iconExternalLink_nPIU\"><use href=\"#theme-svg-external-link\"></use></svg></a><div class=\"navbarSearchContainer_Bca1\"></div><div class=\"toggle_vylO colorModeToggle_DEke\"><button class=\"clean-btn toggleButton_gllP\" type=\"button\" title=\"system mode\" aria-label=\"Switch between dark and light mode (currently system mode)\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" class=\"toggleIcon_g3eP lightToggleIcon_pyhR\"><path fill=\"currentColor\" d=\"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z\"></path></svg><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" class=\"toggleIcon_g3eP darkToggleIcon_wfgR\"><path fill=\"currentColor\" d=\"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z\"></path></svg><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" class=\"toggleIcon_g3eP systemToggleIcon_QzmC\"><path fill=\"currentColor\" d=\"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z\"></path></svg></button></div></div></div><div role=\"presentation\" class=\"navbar-sidebar__backdrop\"></div></nav><div id=\"__docusaurus_skipToContent_fallback\" class=\"theme-layout-main main-wrapper mainWrapper_z2l0\"><div class=\"docsWrapper_hBAB\"><button aria-label=\"Scroll back to top\" class=\"clean-btn theme-back-to-top-button backToTopButton_sjWU\" type=\"button\"></button><div class=\"docRoot_UBD9\"><aside class=\"theme-doc-sidebar-container docSidebarContainer_YfHR\"><div class=\"sidebarViewport_aRkj\"><div class=\"sidebar_njMd\"><nav aria-label=\"Docs sidebar\" class=\"menu thin-scrollbar menu_SIkG\"><ul class=\"theme-doc-sidebar-menu menu__list\"><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item\"><a class=\"menu__link\" href=\"/\"><span title=\"🎯 Introduction\" class=\"linkLabel_WmDU\">🎯 Introduction</span></a></li><li class=\"theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item\"><div class=\"menu__list-item-collapsible\"><a href=\"#\" class=\"categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active\" role=\"button\" aria-expanded=\"true\"><span title=\"🚀 Getting started\" class=\"categoryLinkLabel_W154\">🚀 Getting started</span></a></div><ul class=\"menu__list\" style=\"display: block; overflow: visible; height: auto;\"><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/getting-started/installation\"><span title=\"📦 Installation\" class=\"linkLabel_WmDU\">📦 Installation</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link menu__link--active\" aria-current=\"page\" tabindex=\"0\" href=\"/getting-started/hello-world-example\"><span title=\"👋 Hello world\" class=\"linkLabel_WmDU\">👋 Hello world</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/getting-started/shelf-migration\"><span title=\"✈️ Migration from Shelf\" class=\"linkLabel_WmDU\">✈️ Migration from Shelf</span></a></li></ul></li><li class=\"theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item\"><div class=\"menu__list-item-collapsible\"><a href=\"#\" class=\"categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret\" role=\"button\" aria-expanded=\"true\"><span title=\"📚 Reference\" class=\"categoryLinkLabel_W154\">📚 Reference</span></a></div><ul class=\"menu__list\" style=\"display: block; overflow: visible; height: auto;\"><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/handlers\"><span title=\"Handlers\" class=\"linkLabel_WmDU\">Handlers</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/context\"><span title=\"Context properties\" class=\"linkLabel_WmDU\">Context properties</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/routing\"><span title=\"Routing\" class=\"linkLabel_WmDU\">Routing</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/requests\"><span title=\"Requests\" class=\"linkLabel_WmDU\">Requests</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/responses\"><span title=\"Responses\" class=\"linkLabel_WmDU\">Responses</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/body\"><span title=\"Body\" class=\"linkLabel_WmDU\">Body</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/middleware\"><span title=\"Middleware\" class=\"linkLabel_WmDU\">Middleware</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/static-files\"><span title=\"Static files\" class=\"linkLabel_WmDU\">Static files</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/hot-reload\"><span title=\"Hot reload\" class=\"linkLabel_WmDU\">Hot reload</span></a></li><li class=\"theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item\"><a class=\"menu__link\" tabindex=\"0\" href=\"/reference/pipeline\"><span title=\"Pipeline (legacy)\" class=\"linkLabel_WmDU\">Pipeline (legacy)</span></a></li></ul></li></ul></nav></div></div></aside><main class=\"docMainContainer_TBSr\"><div class=\"container padding-top--md padding-bottom--lg\"><div class=\"row\"><div class=\"col docItemCol_VOVn\"><div class=\"docItemContainer_Djhp\"><article><span class=\"theme-doc-version-badge badge badge--secondary\">Version: 1.0.0</span><div class=\"tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo\"><button type=\"button\" class=\"clean-btn tocCollapsibleButton_TO0P\">On this page</button></div><div class=\"theme-doc-markdown markdown\"><header><h1>Hello world</h1></header>\n<p>Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple <em>Hello world</em> server up and running.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"create-a-dart-package\">Create a Dart package<a href=\"#create-a-dart-package\" class=\"hash-link\" aria-label=\"Direct link to Create a Dart package\" title=\"Direct link to Create a Dart package\" translate=\"no\">​</a></h2>\n<p>First, you need to create a new Dart package for your Relic server.</p>\n<div class=\"language-bash codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\">dart create </span><span class=\"token parameter variable\" style=\"color: rgb(54, 172, 170);\">-t</span><span class=\"token plain\"> console-full hello_world</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"add-the-relic-dependency\">Add the Relic dependency<a href=\"#add-the-relic-dependency\" class=\"hash-link\" aria-label=\"Direct link to Add the Relic dependency\" title=\"Direct link to Add the Relic dependency\" translate=\"no\">​</a></h2>\n<p>Next, add the <code>relic</code> package as a dependency to your <code>pubspec.yaml</code> file.</p>\n<div class=\"language-bash codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token builtin class-name\">cd</span><span class=\"token plain\"> hello_world</span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\">dart pub </span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">add</span><span class=\"token plain\"> relic</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"edit-the-main-file\">Edit the main file<a href=\"#edit-the-main-file\" class=\"hash-link\" aria-label=\"Direct link to Edit the main file\" title=\"Direct link to Edit the main file\" translate=\"no\">​</a></h2>\n<p>Edit the <code>bin/hello_world.dart</code>:</p>\n<div class=\"language-dart codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockTitle_OeMC\">Hello world server</div><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-dart codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">import</span><span class=\"token plain\"> </span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">'package:relic/relic.dart'</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">/// A simple 'Hello World' server demonstrating basic Relic usage.</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token class-name\">Future</span><span class=\"token generics punctuation\" style=\"color: rgb(57, 58, 52);\">&lt;</span><span class=\"token generics keyword\" style=\"color: rgb(0, 0, 159);\">void</span><span class=\"token generics punctuation\" style=\"color: rgb(57, 58, 52);\">&gt;</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">main</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">async</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">// Setup the app.</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">final</span><span class=\"token plain\"> app </span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">=</span><span class=\"token plain\"> </span><span class=\"token class-name\">RelicApp</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">// Route with parameters (:name &amp; :age).</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">get</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">'/user/:name/age/:age'</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">,</span><span class=\"token plain\"> helloHandler</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">// Middleware on all paths below '/'.</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">use</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">'/'</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">,</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">logRequests</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">// Custom fallback - optional (default is 404 Not Found).</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token plain\">fallback </span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">=</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">respondWith</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token plain\">_</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"> </span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">=</span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">&gt;</span><span class=\"token plain\"> </span><span class=\"token class-name\">Response</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">notFound</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> body</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">:</span><span class=\"token plain\"> </span><span class=\"token class-name\">Body</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">fromString</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">\"Sorry, that doesn't compute.\\n\"</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">// Start the server (defaults to using port 8080).</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">await</span><span class=\"token plain\"> app</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">serve</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">}</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token comment\" style=\"color: rgb(153, 153, 136); font-style: italic;\">/// Handles requests to the hello endpoint with path parameters.</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token class-name\">Response</span><span class=\"token plain\"> </span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">helloHandler</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">final</span><span class=\"token plain\"> </span><span class=\"token class-name\">Request</span><span class=\"token plain\"> req</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">final</span><span class=\"token plain\"> name </span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">=</span><span class=\"token plain\"> req</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token plain\">rawPathParameters</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">[</span><span class=\"token plain\">#name</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">]</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">final</span><span class=\"token plain\"> age </span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">=</span><span class=\"token plain\"> int</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">parse</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token plain\">req</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token plain\">rawPathParameters</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">[</span><span class=\"token plain\">#age</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">]</span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">!</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token keyword\" style=\"color: rgb(0, 0, 159);\">return</span><span class=\"token plain\"> </span><span class=\"token class-name\">Response</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">ok</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> body</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">:</span><span class=\"token plain\"> </span><span class=\"token class-name\">Body</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">.</span><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">fromString</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">(</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">'Hello, </span><span class=\"token string-literal interpolation punctuation\" style=\"color: rgb(57, 58, 52);\">$</span><span class=\"token string-literal interpolation expression\">name</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\">! To think you are </span><span class=\"token string-literal interpolation punctuation\" style=\"color: rgb(57, 58, 52);\">$</span><span class=\"token string-literal interpolation expression\">age</span><span class=\"token string-literal string\" style=\"color: rgb(227, 17, 108);\"> years old.\\n'</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">)</span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">;</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color: rgb(57, 58, 52);\">}</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Toggle word wrap\" title=\"Toggle word wrap\" class=\"clean-btn\"><svg viewBox=\"0 0 24 24\" class=\"wordWrapButtonIcon_b1P5\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"></path></svg></button><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<p><strong>What this code does:</strong></p>\n<ol>\n<li class=\"\"><strong>Router and route</strong>: <code>RelicApp()</code> configures routing and registers a <code>/user</code> route.</li>\n<li class=\"\"><strong>Middleware</strong>: <code>use('/', logRequests())</code> logs each request for all paths under <code>/</code>.</li>\n<li class=\"\"><strong>Server and fallback</strong>: <code>app.serve()</code> starts on port 8080; <code>fallback</code> handles unmatched routes and returns a 404 (not found).</li>\n</ol>\n<p>The result is a server that responds with a personalized greeting when you send a GET request matching <code>/user/:name/age/:age</code>.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"running-locally\">Running locally<a href=\"#running-locally\" class=\"hash-link\" aria-label=\"Direct link to Running locally\" title=\"Direct link to Running locally\" translate=\"no\">​</a></h3>\n<p>Start your server with:</p>\n<div class=\"language-bash codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\">dart bin/hello_world.dart</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<p>Then, open your browser and visit <code>http://localhost:8080/user/Nova/age/27</code>, or use curl:</p>\n<div class=\"language-bash codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token function\" style=\"color: rgb(215, 58, 73);\">curl</span><span class=\"token plain\"> http://localhost:8080/user/Nova/age/37</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<p>You should see:</p>\n<div class=\"language-bash codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color: #393A34; --prism-background-color: #f6f8fa;\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_bY9V thin-scrollbar\" style=\"color: rgb(57, 58, 52); background-color: rgb(246, 248, 250);\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color: rgb(57, 58, 52);\"><span class=\"token plain\">Hello Nova</span><span class=\"token operator\" style=\"color: rgb(57, 58, 52);\">!</span><span class=\"token plain\"> To think you are </span><span class=\"token number\" style=\"color: rgb(54, 172, 170);\">27</span><span class=\"token plain\"> years old.</span><br></span></code></pre><div class=\"buttonGroup_M5ko\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_IEyt\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" class=\"copyButtonIcon_TrPX\"><path fill=\"currentColor\" d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg viewBox=\"0 0 24 24\" class=\"copyButtonSuccessIcon_cVMy\"><path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div>\n<p>Congratulations! You just ran your first Relic server.</p>\n<div class=\"theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success\"><div class=\"admonitionHeading_Gvgb\"><span class=\"admonitionIcon_Rf37\"><svg viewBox=\"0 0 12 16\"><path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"></path></svg></span>tip</div><div class=\"admonitionContent_BuS1\"><p>Relic works with <strong>hot reload</strong> out of the box. ⚡️ To use it, start your server in <em>Debug</em> mode from your IDE (or use <code>dart run --enable-vm-service bin/hello_world.dart</code>). Ensure that <em>Hot Reload On Save</em> is enabled in your IDE settings (typically, set it to <em>manual</em> which will trigger hot reload when you save your file).</p></div></div></div><footer class=\"theme-doc-footer docusaurus-mt-lg\"><div class=\"row margin-top--sm theme-doc-footer-edit-meta-row\"><div class=\"col noPrint_WFHX\"><a href=\"https://github.com/serverpod/relic/tree/main/doc/site/versioned_docs/version-1.0.0/01-getting-started/02-hello-world-example.md\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"theme-edit-this-page\"><svg fill=\"currentColor\" height=\"20\" width=\"20\" viewBox=\"0 0 40 40\" class=\"iconEdit_Z9Sw\" aria-hidden=\"true\"><g><path d=\"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z\"></path></g></svg>Edit this page</a></div><div class=\"col lastUpdated_JAkA\"></div></div></footer></article><nav class=\"docusaurus-mt-lg pagination-nav\" aria-label=\"Docs pages\"><a class=\"pagination-nav__link pagination-nav__link--prev\" href=\"/getting-started/installation\"><div class=\"pagination-nav__sublabel\">Previous</div><div class=\"pagination-nav__label\">📦 Installation</div></a><a class=\"pagination-nav__link pagination-nav__link--next\" href=\"/getting-started/shelf-migration\"><div class=\"pagination-nav__sublabel\">Next</div><div class=\"pagination-nav__label\">✈️ Migration from Shelf</div></a></nav></div></div><div class=\"col col--3\"><div class=\"tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop\"><ul class=\"table-of-contents table-of-contents__left-border\"><li><a href=\"#create-a-dart-package\" class=\"table-of-contents__link toc-highlight table-of-contents__link--active\">Create a Dart package</a></li><li><a href=\"#add-the-relic-dependency\" class=\"table-of-contents__link toc-highlight\">Add the Relic dependency</a></li><li><a href=\"#edit-the-main-file\" class=\"table-of-contents__link toc-highlight\">Edit the main file</a><ul><li><a href=\"#running-locally\" class=\"table-of-contents__link toc-highlight\">Running locally</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class=\"theme-layout-footer footer footer--dark\"><div class=\"container container-fluid\"><div class=\"footer__bottom text--center\"><div class=\"footer__copyright\">Copyright © 2026 Serverpod authors.</div></div></div></footer></div>\n\n</body></html>",
"metadata": {
"description": "Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple Hello world server up and running.",
"docsearch:docusaurus_tag": "docs-default-1.0.0",
"docsearch:language": "en",
"docsearch:version": "1.0.0",
"docusaurus_locale": "en",
"docusaurus_tag": "docs-default-1.0.0",
"docusaurus_version": "1.0.0",
"generator": "Docusaurus v3.9.2",
"lang": "en",
"og:description": "Once you have Dart installed, it only takes a few lines of code to set up your Relic server. These are the steps you need to take to get a simple Hello world server up and running.",
"og:locale": "en",
"og:title": "Hello world | Relic",
"og:url": "https://docs.dartrelic.dev/getting-started/hello-world-example",
"twitter:card": "summary_large_image",
"viewport": "width=device-width, initial-scale=1.0"
},
"publishedTime": "Wed, 18 Feb 2026 09:05:14 GMT",
"title": "Hello world | Relic",
"url": "https://docs.dartrelic.dev/getting-started/hello-world-example",
"usage": {
"tokens": 21616
}
},
"meta": {
"usage": {
"tokens": 21616
}
},
"status": 20000
}