Skip to content

๐Ÿƒ ๐Ÿ’ฝ โŽ - Uvicorn

๐Ÿ‘‘ ๐Ÿ‘œ ๐Ÿ‘† ๐Ÿ’ช ๐Ÿƒ FastAPI ๐Ÿˆธ ๐Ÿ›ฐ ๐Ÿ’ฝ ๐ŸŽฐ ๐Ÿ”ซ ๐Ÿ’ฝ ๐Ÿ“‹ ๐Ÿ’– Uvicorn.

๐Ÿ“ค 3๏ธโƒฃ ๐Ÿ‘‘ ๐ŸŽ›:

  • Uvicorn: โ†• ๐ŸŽญ ๐Ÿ”ซ ๐Ÿ’ฝ.
  • Hypercorn: ๐Ÿ”ซ ๐Ÿ’ฝ ๐Ÿ”— โฎ๏ธ ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ”/2๏ธโƒฃ & ๐ŸŽป ๐Ÿ‘ช ๐ŸŽ โš’.
  • ๐Ÿ‘ธ: ๐Ÿ”ซ ๐Ÿ’ฝ ๐Ÿ— โœณ ๐Ÿ“ป.

๐Ÿ’ฝ ๐ŸŽฐ & ๐Ÿ’ฝ ๐Ÿ“‹

๐Ÿ“ค ๐Ÿคช โ„น ๐Ÿ”ƒ ๐Ÿ“› โœ”๏ธ ๐Ÿคฏ. ๐Ÿ‘ถ

๐Ÿ”ค "๐Ÿ’ฝ" ๐Ÿ›Ž โš™๏ธ ๐Ÿ”— ๐Ÿ‘ฏโ€โ™‚๏ธ ๐Ÿ›ฐ/โ˜ ๐Ÿ’ป (โš› โš–๏ธ ๐Ÿ•น ๐ŸŽฐ) & ๐Ÿ“‹ ๐Ÿ‘ˆ ๐Ÿƒโ€โ™‚ ๐Ÿ”› ๐Ÿ‘ˆ ๐ŸŽฐ (โœ… Uvicorn).

โœ”๏ธ ๐Ÿ‘ˆ ๐Ÿคฏ ๐Ÿ•โ” ๐Ÿ‘† โœ "๐Ÿ’ฝ" ๐Ÿข, โšซ๏ธ ๐Ÿ’ช ๐Ÿ”— 1๏ธโƒฃ ๐Ÿ“š 2๏ธโƒฃ ๐Ÿ‘œ.

๐Ÿ•โ” ๐Ÿ”— ๐Ÿ›ฐ ๐ŸŽฐ, โšซ๏ธ โš  ๐Ÿค™ โšซ๏ธ ๐Ÿ’ฝ, โœ‹๏ธ ๐ŸŽฐ, ๐Ÿ’พ (๐Ÿ•น ๐ŸŽฐ), ๐Ÿ•ธ. ๐Ÿ‘ˆ ๐ŸŒ ๐Ÿ”— ๐Ÿ†Ž ๐Ÿ›ฐ ๐ŸŽฐ, ๐Ÿ›Ž ๐Ÿƒโ€โ™‚ ๐Ÿ’พ, ๐ŸŒโ” ๐Ÿ‘† ๐Ÿƒ ๐Ÿ“‹.

โŽ ๐Ÿ’ฝ ๐Ÿ“‹

๐Ÿ‘† ๐Ÿ’ช โŽ ๐Ÿ”ซ ๐Ÿ”— ๐Ÿ’ฝ โฎ๏ธ:

  • Uvicorn, ๐ŸŒฉ-โฉ ๐Ÿ”ซ ๐Ÿ’ฝ, ๐Ÿ— ๐Ÿ”› uvloop & httptool.
$ pip install "uvicorn[standard]"

---> 100%

Tip

โŽ standard, Uvicorn ๐Ÿ”œ โŽ & โš™๏ธ ๐Ÿ‘ โž• ๐Ÿ”—.

๐Ÿ‘ˆ โœ… uvloop, โ†•-๐ŸŽญ ๐Ÿ’ง-โ™ป asyncio, ๐Ÿ‘ˆ ๐Ÿšš ๐Ÿฆ ๐Ÿ› ๏ธ ๐ŸŽญ ๐Ÿ“ˆ.

  • Hypercorn, ๐Ÿ”ซ ๐Ÿ’ฝ ๐Ÿ”— โฎ๏ธ ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ”/2๏ธโƒฃ.
$ pip install hypercorn

---> 100%

...โš–๏ธ ๐Ÿ™† ๐ŸŽ ๐Ÿ”ซ ๐Ÿ’ฝ.

๐Ÿƒ ๐Ÿ’ฝ ๐Ÿ“‹

๐Ÿ‘† ๐Ÿ’ช โคด๏ธ ๐Ÿƒ ๐Ÿ‘† ๐Ÿˆธ ๐ŸŽ ๐ŸŒŒ ๐Ÿ‘† โœ”๏ธ โŒ› ๐Ÿ”ฐ, โœ‹๏ธ ๐Ÿต --reload ๐ŸŽ›, โœ…:

$ uvicorn main:app --host 0.0.0.0 --port 80

<span style="color: green;">INFO</span>:     Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
$ hypercorn main:app --bind 0.0.0.0:80

Running on 0.0.0.0:8080 over http (CTRL + C to quit)

Warning

๐Ÿ’ญ โŽ --reload ๐ŸŽ› ๐Ÿšฅ ๐Ÿ‘† โš™๏ธ โšซ๏ธ.

--reload ๐ŸŽ› ๐Ÿด ๐ŸŒ… ๐ŸŒ… โ„น, ๐ŸŒ… โš , โ™’๏ธ.

โšซ๏ธ โ„น ๐Ÿ“š โฎ๏ธ ๐Ÿ› ๏ธ, โœ‹๏ธ ๐Ÿ‘† ๐Ÿšซ๐Ÿ”œ ๐Ÿšซ โš™๏ธ โšซ๏ธ ๐Ÿญ.

Hypercorn โฎ๏ธ ๐ŸŽป

๐Ÿ’ƒ & FastAPI โš“๏ธ ๐Ÿ”› AnyIO, โ” โš’ ๐Ÿ‘ซ ๐Ÿ”— โฎ๏ธ ๐Ÿ‘ฏโ€โ™‚๏ธ ๐Ÿ ๐Ÿฉ ๐Ÿ—ƒ โœณ & ๐ŸŽป.

๐Ÿ‘, Uvicorn โณ ๐Ÿ•ด ๐Ÿ”— โฎ๏ธ โœณ, & โšซ๏ธ ๐Ÿ›Ž โš™๏ธ uvloop, โ†•-๐ŸŽญ ๐Ÿ’ง-โ™ป asyncio.

โœ‹๏ธ ๐Ÿšฅ ๐Ÿ‘† ๐Ÿ’š ๐Ÿ”— โš™๏ธ ๐ŸŽป, โคด๏ธ ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ Hypercorn โšซ๏ธ ๐Ÿ•โ€๐Ÿฆบ โšซ๏ธ. ๐Ÿ‘ถ

โŽ Hypercorn โฎ๏ธ ๐ŸŽป

๐Ÿฅ‡ ๐Ÿ‘† ๐Ÿ’ช โŽ Hypercorn โฎ๏ธ ๐ŸŽป ๐Ÿ•โ€๐Ÿฆบ:

$ pip install "hypercorn[trio]"
---> 100%

๐Ÿƒ โฎ๏ธ ๐ŸŽป

โคด๏ธ ๐Ÿ‘† ๐Ÿ’ช ๐Ÿšถโ€โ™€๏ธ ๐Ÿ“‹ โธ ๐ŸŽ› --worker-class โฎ๏ธ ๐Ÿ’ฒ trio:

$ hypercorn main:app --worker-class trio

& ๐Ÿ‘ˆ ๐Ÿ”œ โ–ถ๏ธ Hypercorn โฎ๏ธ ๐Ÿ‘† ๐Ÿ“ฑ โš™๏ธ ๐ŸŽป ๐Ÿ‘ฉโ€๐Ÿ’ป.

๐Ÿ”œ ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ ๐ŸŽป ๐Ÿ”˜ ๐Ÿ‘† ๐Ÿ“ฑ. โš–๏ธ ๐Ÿ‘, ๐Ÿ‘† ๐Ÿ’ช โš™๏ธ AnyIO, ๐Ÿšง ๐Ÿ‘† ๐Ÿ“Ÿ ๐Ÿ”— โฎ๏ธ ๐Ÿ‘ฏโ€โ™‚๏ธ ๐ŸŽป & โœณ. ๐Ÿ‘ถ

๐Ÿ› ๏ธ ๐Ÿ”ง

๐Ÿ‘ซ ๐Ÿ–ผ ๐Ÿƒ ๐Ÿ’ฝ ๐Ÿ“‹ (๐Ÿ“ง.โ“‚ Uvicorn), โ–ถ๏ธ ๐Ÿ‘ ๐Ÿ› ๏ธ, ๐Ÿ‘‚ ๐Ÿ”› ๐ŸŒ ๐Ÿ“ข (0.0.0.0) ๐Ÿ”› ๐Ÿ” โ›ด (โœ… 80).

๐Ÿ‘‰ ๐Ÿ”ฐ ๐Ÿ’ญ. โœ‹๏ธ ๐Ÿ‘† ๐Ÿ”œ ๐ŸŽฒ ๐Ÿ’š โœŠ ๐Ÿ’… ๐ŸŒ– ๐Ÿ‘œ, ๐Ÿ’–:

  • ๐Ÿ’‚โ€โ™‚ - ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ”
  • ๐Ÿƒโ€โ™‚ ๐Ÿ”› ๐Ÿ•ด
  • โ
  • ๐Ÿงฌ (๐Ÿ”ข ๐Ÿ› ๏ธ ๐Ÿƒ)
  • ๐Ÿ’พ
  • โฎ๏ธ ๐Ÿ” โญ โ–ถ๏ธ

๐Ÿ‘ค ๐Ÿ”œ ๐Ÿ’ฌ ๐Ÿ‘† ๐ŸŒ… ๐Ÿ”ƒ ๐Ÿ”  ๐Ÿ‘ซ ๐Ÿ”ง, โ” ๐Ÿ’ญ ๐Ÿ”ƒ ๐Ÿ‘ซ, & ๐Ÿงฑ ๐Ÿ–ผ โฎ๏ธ ๐ŸŽ› ๐Ÿต ๐Ÿ‘ซ โญ ๐Ÿ“ƒ. ๐Ÿ‘ถ