BUN은 경량 올인원 JAVASCRIPT 런타임입니다.

BUN은 경량 올인원 JAVASCRIPT 런타임입니다.

2022-10-19 last update

7 minutes reading programming javascript react webdev
아마도 이전에 JavaScript 번들러를 만난 적이 있을 것입니다. 이것은 Rollup 또는 Webpack과 같은 도구에서 비교적 잘 처리되지만 놀라운 것이 곧 실현될 것입니다.

가까운 장래에 자바스크립트를 개발할 계획이라면 잘 알고 있어야 할 번들러인 Bun을 소개하겠습니다.



Stripe의 전 프론트엔드 프로그래머인 Bun은 스스로를 "실험적 소프트웨어"라고 부르는 프로젝트를 개발했습니다. MIT 라이선스는 그것을 오픈 소스로 만듭니다. 어제 Sumner는 Bun의 공개 베타를 공개했습니다.

“an incredibly fast all-in-one JavaScript runtime.”



그는 트위터에서 초당 백만 라인 이상의 JavaScript를 번들로 묶을 수 있다고 주장했습니다.

Bundle, transpile, install and run JavaScript & TypeScript projects — all in Bun. Bun is a new JavaScript runtime with a native bundler, transpiler, task runner and npm client built-in.



BUN에 대해 자세히 설명하십시오.



Node 또는 Deno와 유사한 최신 JavaScript 런타임은 Bun입니다. 세 가지 주요 목표를 염두에 두고 처음부터 만들어졌습니다.
  • 빠른 시작(가장자리 고려).
  • 더 높은 성능 표준(엔진의 JavaScript 코어 확장).
  • 환상적이고 포괄적인 도구(번들러, 트랜스파일러, 패키지 관리자).

  • 성능에 대해 논의해 보겠습니다 ⚡



    일반적으로 빠르다고 여겨지는 V8 엔진 대신 WebKit의 JavaScript Core를 사용합니다. 또한 Bun의 저자는 C 또는 Rust에 필적하는 저수준 프로그래밍 언어인 ZIG에는 숨겨진 제어 흐름이 없기 때문에 빠른 응용 프로그램을 훨씬 쉽게 구축할 수 있다고 말했습니다.



    개발자의 경우 공식 웹 사이트의 프레젠테이션은 많은 상자를 확인합니다. Deno와 유사하게 Bun 또한 자동화된 변환을 통해 JavaScript 및 TypeScript를 사용합니다. React JSX(JavaScript XML) 구문도 Bun으로 번역됩니다. CommonJS 및 EcmaScript 모듈(ESM)은 모두 Node.js 모듈 확인을 위해 지원되지만 ESM은 웹 표준이기 때문에 내부적으로 활용됩니다.

    그러나 이것은 많은 npm 패키지가 작동함을 의미합니다. bun:ffi를 사용하면 기본 코드가 Bun JavaScript(외부 함수 인터페이스)에서 호출될 수 있습니다. SQLite 데이터베이스 엔진도 포함되어 있습니다.

    “Most of Bun is written from scratch including the JSX/TypeScript transpiler, npm client, bundler, SQLite client, HTTP client, WebSocket client and more,” states the description.



    롤빵으로 시작하기:



    터미널에서 이 설치 스크립트를 실행하여 bun을 설치하십시오. GitHub에서 Bun이 다운로드됩니다.

    curl https://bun.sh/install | bash
    


    그러면 다음과 유사한 출력이 표시됩니다.

    StatusCode        : 200
    StatusDescription : OK
    Content           : #!/bin/bash
    
                        # Reset
                        Color_Off=''
    
                        # Regular Colors
                        Red=''
                        Green=''
    
                        # Bold
                        BWhite=''
                        BGreen=''
    
                        Dim='' # White
    
                        if test -t 1; then
                            # Reset
                            Color_Off='\033[0m' # Text Reset
    
                            # Regular Colo...
    RawContent        : HTTP/1.1 200 OK
                        Transfer-Encoding: chunked
                        Connection: keep-alive
                        x-origin-cache: HIT
                        access-control-allow-origin: *
                        x-proxy-cache: MISS
                        x-github-request-id: CC28:9668:148223F:1576AA7:62C7E60C
                        ...
    Forms             : {}
    Headers           : {[Transfer-Encoding, chunked], [Connection, keep-alive], [x-origin-cache, HIT],
                        [access-control-allow-origin, *]...}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        : mshtml.HTMLDocumentClass
    RawContentLength  : 4906
    
    


    Bun이 설계한 HTTP 서버는 Request 및 Response와 같은 웹 표준을 기반으로 합니다.

    // http.js
    export default {
      port: 3000,
      fetch(request) {
        return new Response("Welcome to Bun!");
      },
    };
    
    


    롤빵으로 실행하십시오.

    bun run http.js
    


    그런 다음 브라우저에서 localhost:3000으로 이동합니다.
    documentation 을 읽으면 추가 샘플을 찾을 수 있습니다.

    그게 다야:
    이 글이 도움이 되셨다면 박수를 몇 번이나 눌러주세요 😊