מה זה Fastify?
Fastify היא מסגרת לפיתוח אפליקציות שרת בצד ה־Backend באמצעות Node.js, שממוקדת בביצועים גבוהים,
צריכת משאבים נמוכה, ותחזוקה קלה.
היא מציעה ממשק תכנות מודרני, תמיכה רחבה בתוספים (plugins), ולוגיקה מבוססת על schemas (דרך JSON Schema) –
מה שהופך אותה לאופציה מועדפת על מפתחים שמחפשים חלופה מהירה ל־Express.js.
יתרונות עיקריים של Fastify
מהירות גבוהה מאוד – ביצועים המתחרים ואף עוקפים את Express.
תמיכה ב־JSON Schema – מאפשרת ולידציה, ניהול שגיאות ותיעוד אוטומטי.
Modular plugin architecture – מודולריות מלאה המאפשרת הפרדה בין רכיבי אפליקציה.
TypeScript Ready – תמיכה מלאה ב־TypeScript מובנית.
Low overhead – משקל קל ויעילות בזיכרון.
Built-in logging – לוגים מובנים עם תמיכה ב־Pino (ספריית לוגים מהירה מאוד).
מאפיינים עיקריים של Fastify
Routing
מערכת ניתוב (routes) דומה לזו של Express, אך כוללת אפשרויות מתקדמות לולידציה ו־hooks.
javascript
fastify.get(‘/items/:id’, {
schema: {
params: {
id: { type: ‘string’ }
}
}
}, async (request, reply) => {
const { id } = request.params;
return { itemId: id };
});
JSON Schema Validation
הגדרת schemas ב־routes לאימות בקשות נכנסות:
javascript
schema: {
body: {
type: ‘object’,
required: [‘name’],
properties: {
name: { type: ‘string’ }
}
}
}
Plugins
Fastify מאפשרת להרחיב את האפליקציה באמצעות מערכת תוספים:
javascript
fastify.register(require(‘./routes/users’));
Hooks
תמיכה מלאה ב־lifecycle hooks – לפני עיבוד בקשות, אחרי שליחה ועוד:
javascript
fastify.addHook(‘onRequest’, async (request, reply) => {
// אימות, לוגים, וכו’
});
השוואה של Fastify מול Express
| מאפיין | Fastify | Express |
| ביצועים | מהירים יותר | איטיים יחסית |
| תמיכה ב־Schema | כן (JSON Schema) | לא |
| TypeScript | תמיכה מעולה | חלקית |
| פלאגינים | מודולריים, ניתנים להרכבה | קיימים, פחות מובנים |
| Logging | מובנה עם Pino | לא מובנה |
התקנה בסיסית של Fastify
bash
npm install fastify
javascript
// app.js
const fastify = require(‘fastify’)({ logger: true });
fastify.get(‘/’, async (request, reply) => {
return { hello: ‘world’ };
});
fastify.listen({ port: 3000 }, (err, address) => {
if (err) throw err;
console.log(`Server running at ${address}`);
});
דפוסי שימוש נפוצים
פיתוח APIs רזים ומהירים
שירותי Microservices
שילוב עם GraphQL, WebSockets, ו־JWT
פיתוח אפליקציות Serverless עם AWS Lambda
תוספים נפוצים של Fastify
fastify-jwt – לניהול אימות עם JSON Web Tokens
fastify-cors – לטיפול בבקשות חוצות דומיין
fastify-formbody – לתמיכה ב־x-www-form-urlencoded
fastify-swagger – תיעוד אוטומטי של ה־API
שאלות ותשובות בנושא Fastify
איך Fastify מטפל בשגיאות?
Fastify כוללת מערכת מובנית לניהול שגיאות עם תבניות JSON תקניות, כולל אפשרות להגדרת setErrorHandler.
האם אפשר להריץ Fastify ב־Serverless (כמו AWS Lambda)?
כן. יש תמיכה מלאה עם עזרים כמו fastify-lambda.
איך מבצעים בדיקת עומסים?
Fastify מציעה כלי benchmark פנימיים, אך מומלץ להשתמש גם ב־autocannon או artillery.io.
מהו Serialization ב־Fastify?
תהליך של המרת האובייקט לתגובה JSON – Fastify מאפשר הגדרת schema להאצת התהליך הזה עם קוד שנוצר מראש.

