一個比nodeJs更快的新Javascript runtime — Bun v1.0

JLin
6 min readSep 13, 2023

--

突然看到了這篇

看了一下內容,居然可以快 5倍,並且可以取代npm等等套件工具,於是想說來試試好了,沒想到異常的簡單,就這樣

語法就是javascript,但必須用他的套件framework,架設一個http網站回應 Welcome to Bun

就這樣,基本上我從安裝到執行成功,就只花了三分鐘,真的不誇張,如果我要寫kotlin script,好像要在意要import什麼套件,然後絕對不只三分鐘(當然如果透過extension先寫好一些工具也可以用一樣的寫法與行數)

上面安裝好後,記得先把原本的terminal關掉,再打開,$PATH才會生效,才能執行bun

如果要像是curl抓一段html,就可以這樣寫,本來用println想印出,沒想到沒有println,查了一下官網,有一個

write to stdout

於是就可以這樣

很快地就得到

似乎是一個可以很快地處理執行一些script,並且他可以整合你os function的一些功能

然後這邊有一個有趣的功能 hotload

https://bun.sh/guides/http/hot

有用http做過類似的看過這個字應該知道意思,就是你跑他執行,你不需要再修改tsx的時候,反覆的回來執行bun ,他會自動當你修改檔案的時候動態的去執行,所以你修改檔案內的文字後,在網頁端更新,就可以看到最新結果

而官網的範例真的是給得很詳細

各種的檔案類型讀取,或者檔案開啟

都給你寫得好好的,那就這樣啦,是沒有去比較執行速度,但使用起來相當的簡單好懂,非常值得嘗試一下。

試試OpenAI for nodeJS 的API

在這之前如果以前你是透過nodeJs,必須先透過npm安裝openAI的SDK

npm install --save openai

現在可以把它換成bun

bun install --save openai

很快速就可以安裝起來,而且bun install的安裝速度是比npm快上很多

接著查看openAI的官網

我們透過這個文法效正的範例來測試

稍微調整一下

code

// This code is for v4 of the openai package: npmjs.com/package/openai
import OpenAI from "openai";

const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});

async function main() {
const completion = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-3.5-turbo',
});

console.log(completion.choices);
}

main();

存成一個 openai.js

接著以前是透過

node openai.js

現在透過

bun openai.js

就可以執行了

簡單又快速,不需要更改內容程式碼沒幾行就可以串接openAI來呼叫使用,你想改用bun的api才需要修改內容。

繼續閱讀

寫了另一篇用bun去抓取ubike api json來顯示的demo,有興趣的可以繼續閱讀

--

--

JLin

JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,或是生成式AI (Gemini/OpenAI)各式應用, 都有小興趣