
C ו-CGI מניעים מוצר ווב מסחרי ב-2026
קורי פרופיט שיחרר את marketyour.games, מוצר ווב מסחרי עם חשבונות, חיפוש, תיקיות, תשלומי Stripe ואימיילים של Postmark, באמצעות C ו-CGI על OpenBSD. בינארי אחד משרת את כל הבקשות.
אפליקציית CGI מסחרית ב-2026
קורי פרופיט מספר כי marketyour.games שוחרר כמוצר ווב מסחרי, כתוב ב-C ומופעל באמצעות CGI. המוצר כולל חשבונות משתמשים, לוח חיפוש ליוצרי תוכן, תיקיות לארגון תוכן, תשלומים באמצעות Stripe ואימיילים טרנזקציונליים באמצעות Postmark. הוא עוקב אחר הגברה מתגברת ולא דורש JavaScript.
הסטק הוא BCHS: OpenBSD, C, httpd ו-SQLite. לא פריימוורק, לא שפת תבניות, לא שרת מסד נתונים נפרד ולא קונטיינר. תוכנית ה-C קוראת את משתני הסביבה של CGI ומשיבה, קוד ה-C מפיק HTML ישירות, וה-C API של SQLite פותח את קובץ מסד הנתונים. ההצגה היא בינארי מקומפל סטטית, שפשוט זורקים לתיקייה.
בינארי אחד ושלוש ספריות
כל בקשה יוצרת תהליך חדש, ולכן הצגת גרסה חדשה פירושה החלפת קובץ אחד. לפי פרופיט, אין אתחול שרת ואין עיכובים, בקשות חדשות פשוט משתמשות בבינארי חדש. OpenBSD מספק פרמטרים וכלים מוגדרים כברירת מחדל כמו pledge ו-unveil להגנה על תוכנית ה-C, ו-httpd פועל מ-chroot כברירת מחדל, כך שבינארי ה-CGI מוכל בארגז חול.
ספריות נוספות: libcurl, לבקשות יוצאות ל-Stripe ול-Postmark; libsodium, ליצירת מזהים אקראיים, לגיבוב סיסמאות ולאימות HMAC של webhook של Stripe; ו-libcjson, לעיבוד JSON. רק libcurl ו-libsodium הן תלותי בנייה. libcjson הוא קובץ C אחד ללא תלויות חיצוניות, ו-SQLite משתמש ב-amalgamation הרשמי שלו. שתיהן מוטמעות בפרויקט ומקומפלות יחד עם הפרויקט.
פרופיט מפנה את כל התנועה של httpd לבינארי ה-CGI ומקמפל לקבצים ברי ההפעלה בעצמם, כדי שיאוכלו מזיכרון. לפיו, בנייה נקייה לוקחת מספר שניות, ובנייה מחדש פחות מחצי שנייה. שרשרת האספקה שלו היא קומפיילר C ושלוש ספריות, והעורך הראשי הוא Vim ללא תוספים.
מה השתנה
CGI נותן מעט מאוד מוכן, ולכן עדיין צריך לכתוב עזרים לעיבוד ויצירת עוגיות, עיבוד ואימות פרמטרי query, עיבוד ואימות נתוני טפסים ומניעת escaping של קלט. פרופיט כתוב גרסה משלו בקובץ כותרת אחד, cgi.h, אבל הוא לא בטוח שזה הפתרון הנכון. הוא מציין שקיימות ספריות דמויות kcgi, אך שימוש בהן פירושו אימוץ ה-API ומודל האבטחה שלהן, והוא רצה עזרים בסגנון ספריות stb.
המסקנה שלו היא ש-CGI הוא ישן, אבל לא מיותר. fork של תהליכים פחות יקר מאי פעם, ו-FastCGI הוא עדכון אפשרי אם fork יהפוך לבעיה. המוצר עובד על בינארי אחד, עם מודל שירות מתוקנן מ-2004, ויש בו פחות חלקים נעים מכל דבר שהוא שוחרר עד כה.
מקורות: prophitt.me
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.