August 1, 2022

Bun & Hono - מבט ראשוני


הקדמה

לעיתים שומעים על טכנולוגיות חדשות וכלי פיתוח חדשים והדבר הראשון שעולה לי לראש זה שאני חייב לראות מה זה!

טכנולוגיות חדשות כאלו נקראות - Bleeding Edge מכיוון שהן בחזית הטכנולוגיה.
אלו כלים שיש בהם סיכון רב כי לא ידוע אם הקהילה תקבל את הכלים האלו ואם זה יחזיק במבחן החיים.

בפוסט הזה אציג סביבת הרצה חדשה ל-Javascript הנקראת - Bun.

מה זה Bun?

קישור:
https://bun.sh/

Github:
https://github.com/oven-sh/bun#install

Bun היא סביבה חדשה לבנייה והרצה של Javascript ו -Typescript.
תאורתית היא באה להחליף את NodeJS.

לפי גרפי הביצועים שלהם, המימוש של הסביבה הווירטואלית יותר מהירה:

שימו ❤:

כרגע סביבת הפיתוח קיימת ללינוקס בלבד לכן צריך להשתמש ב- wsl בווינדוס.
עוד סיבה להתנסות בטכנולוגיה הזו :)

התקנה

בהתקנה פשוט תריצו את הפקודה הבאה:

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

פקודה bun

bun

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bun: a fast bundler, transpiler, JavaScript Runtime and package manager for web software.

dev ./a.ts ./b.jsx Start a bun Dev Server
bun ./a.ts ./b.jsx Bundle dependencies of input files into a .bun

create next ./app Start a new project from a template (bun c)
run test Run JavaScript with bun, a package.json script, or a bin
install Install dependencies for a package.json (bun i)
add next@^12 Add a dependency to package.json (bun a)
remove redux Remove a dependency from package.json (bun rm)

upgrade Get the latest version of bun
completions Install shell completions for tab-completion
discord Open bun's Discord server
help Print this help menu

ביצירת פרוייקטים יש גישה נוחה לתבניות חדשות שיכולות לעזור לכם ליצור אפליקציות במהירות:

פקודת bun create

bun create

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Welcome to bun! Create a new project by pasting any of the following:

bun create blank ./blank-app

bun create bun-bakery ./bun-bakery-app

bun create discord-interactions ./discord-interactions-app

bun create hono ./hono-app

bun create next ./next-app

bun create react ./react-app

# You can also paste a GitHub repository:

bun create ahfarmer/calculator calc

This command is completely optional. To add a new local template, create a folder in /root/.bun-create/. To publish a new template, git clone https://github.com/jarred-sumner/bun, add a new folder to the "examples" folder, and submit a PR.

אפליקציית hono

בשביל הדמו אני אעשה אפליקציית hono:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
bun create hono

$ bun install
bun install v0.1.5
+ bun-types@0.1.5
+ hono@2.0.6

2 packages installed [2.01s]

[2.01s] bun install


[3.96s] bun create hono

Come hang out in bun's Discord: https://bun.sh/discord

-----

Dependencies were installed automatically.

Created hono project successfully

# To get started, run:

cd hono
bun dev

Hono היא כמו Express - חבילה לבניית Web API.

שילוב wsl עם ווינדוס

אני רוצה לעבוד עם הכלים שיש לי בווינדוס על הקבצים שנמצאים במערכת לינוקס.
כיצד לעשות זאת?
ניתן לגשת לתיקיות של מערכות ההפעלה פשוט דרך :

\\wsl.localhost\

אני התקנתי kali ו -ubuntu:

פרוייקט חדש

אחרי ההרצה נוצר לנו פרוייקט עם קבצי הקונפיגורציה:

ע”י יצירה של קובץ .env ניתן לשנות פרמטרים כגון פורט.

קוד

בקוד הבא אנחנו מחזירים Hello World בכניסה לשירות שלנו:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { Hono } from "hono";

const app = new Hono();

const port = parseInt(process.env.PORT) || 3000;

const home = app.get("/", (c) => {
console.log("Detected get");
return c.text("Hello World!");
});

console.log(`Running at http://localhost:${port}`);

export default {
port,
fetch: home.fetch,
};

כשאנחנו ניגשים לנקודת גישה זה מדפיס לנו:


יצירת פרוייקט React

bun create react

זה יוצר לנו פרוייקט מאוד מסודר:

מריצים bun dev ומתחילים לעבוד:


זהו פרוייקט שיכול להבטיח שינויים גם בפרוייקטים קיימים כמו Deno ו- NodeJs בעצמם.

בסוף המטרה היא ליצור כלים ואפליקציות שייעזרו לנו לבנות במהירות ופשטות תוכנות אפקטיביות.
ביצועים, פשטות ושימושיות אלו מטרות שצריכות להיות לכל אחד שכותב קוד לאנשים.

תודה על הקריאה!

על הפוסט

הפוסט נכתב על ידי Ilya, רישיון על ידי CC BY-NC-ND 4.0.

שתפו את הפוסט

Email Facebook Linkedin Print

קנו לי קפה

#Software#Bun#Javascript#Web#Hono