Tinygo, מהדר Go מבוסס LLVM

זעיר

TinyGo: מהדר Go למקומות קטנים

אם אתה עובד עם מיקרו-בקרים ואתה חובב Go, טייניגו עשוי להיות בשבילך, מאז פותח מהדר Go pעבור אזורים הדורשים ייצוג קומפקטי של הקוד המתקבל וצריכת משאבים נמוכה, כגון מיקרו-בקרי מערכות משובצות ו-WebAssembly.

TinyGo הוא מהדר ש שואפת להביא את ה-Go build לפלטפורמות יעד שונות אשר מיושם באמצעות LLVM, והספריות המשמשות בערכת הכלים הראשית של פרויקט Go משמשות לתמיכה בשפה.

באתר Tinygo, מתואר כי:

אתה יכול לקמפל ולהריץ תוכניות TinyGo על למעלה מ-94 לוחות מיקרו-בקר שונים, כולל ה-BBC micro:bit ו-Arduino Uno.

TinyGo יכולה גם לייצר קוד WebAssembly (WASM) שהוא מאוד קומפקטי בגודלו. אתה יכול לבנות תוכניות עבור דפדפני אינטרנט, כמו גם עבור שרתים וסביבות מחשוב קצה התומכות במשפחת הממשקים של WebAssembly System Interface (WASI).

הסיבה ליצירת פרויקט TinyGO הייתה הרצון להשתמש בשפת ה- Go הנפוצה במכשירים קומפקטיים- המפתחים נימקו שאם קיימת גרסה של פייתון למיקרו-בקרים, אז מדוע לא ליצור גרסה דומה לשפת ה- Go?

ב-TinyGo, ניתן להפעיל את התוכנית הקומפילית ישירות על מיקרו-בקרים, lאו שהיא מאפשרת להשתמש ב-Go כשפה לכתיבת סקריפטים אוטומציה. TinyGo תומך כיום ב-94 דגמי מיקרו-בקרים, כולל לוחות שונים כמו Raspberry Pi Pico, Nordic, SiFive, בין היתר.

TinyGo מספקת את הדרייברים המיוחדים להתממשק עם התקנים וחיישנים חיצוניים מחוברים, כמו גם לתמוך בממשקים כגון I2C, GPIO ו-SPI. ניתן גם להרכיב תוכניות בפורמט WebAssembly (wasm/wasi) להפעלה בדפדפן וכקבצים בינאריים של לינוקס.

יעדי המפתח של הפרויקט:

  • היכולת להשתמש בתת-קבוצה של שפת ה-Go המוכרת במכשירים קומפקטיים. Go נבחרה על פני Rust כי היא קלה יותר ללמידה, מספקת תמיכה בלתי תלויה בחוט להקבלה מבוססת שגרה ומציעה ספרייה סטנדרטית נרחבת.
  • יצירת קבצי הפעלה קומפקטיים מאוד.
  • תמיכה בדגמים הנפוצים ביותר של לוחות מיקרו-בקר.
  • היכולת להשתמש עבור האינטרנט וליצור יישומי WebAssembly עצמאיים באמצעות WASI (WebAssembly
  • ממשק מערכת) לעבודה עם קבצים, שקעים ופונקציות אחרות המסופקות על ידי מערכת ההפעלה.
  • תמיכת CGo עם תקורה מינימלית בעת קריאה לפונקציות שפת C.
  • תאימות לרוב החבילות הסטנדרטיות והיכולת להדר קוד קיים גנרי מבלי לשנות אותו.
  • בניגוד למהדר ה-emgo שהוצא משימוש דומה, Tinygo שומרת על מודל ניהול הזיכרון המקורי של Go דרך אספן אשפה ומשתמשת ב-LLVM במקום קומפילציה לייצוג C כדי ליצור קוד מקורי יעיל.

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

בנוסף, הגרסה החדשה מוסיפה תמיכה בהנחיית "//go:wasmimport" לייבוא ​​תכונות מ-WebAssembly, בתוספת תמיכה בכרטיסים חדשים כמו Gopher Badges.

בסופו של דבר אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים ב הקישור הבא.

כיצד להתקין את Tinygo על לינוקס?

למי שכן מעוניין להיות מסוגל להתקין את Tinygo, על Debian, Raspbian, Ubuntu ונגזרות. עליהם לפתוח מסוף ובו אנו הולכים לבצע את הפקודה הבאה:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_amd64.deb sudo dpkg -i tinygo_0.28.1_amd64.deb

למקרה המיוחד של מערכות למכשירי ARM (גרסאות Raspbian ואובונטו)

אנו הולכים להקליד את הדברים הבאים:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_arm64.deb sudo dpkg -i tinygo_0.28.1_arm64.deb

במקרה של אלה המשתמשים ב- Arch Linux ונגזרות, עליהם לבצע את הפקודה הבאה:

sudo pacman -S tinygo

עכשיו למקרה של משתמשי פדורה:

sudo dnf install tinygo

לאחר שתסיים את ההתקנה, עליהם לוודא שדרך הטיניגו נמצאת בנתיב שלהם.

ייצוא PATH=$PATH:/usr/local/tinygo/bin

סוף סוף ל לאמת התקנה אנחנו הולכים להקליד את הפקודה הבאה:

גרסת tinygo

והוא צריך לזרוק לנו משהו כזה

tinygo גרסה 0.28.1 linux/amd64

כדי ללמוד עוד על זה, אתה יכול להתייעץ הקישור הבא. 


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.