منصوبے کے بارے میں

truss ایک امیج ٹرانسفارمیشن ٹول ہے جو ایک مشترکہ Rust کور کے گرد بنایا گیا ہے، اور تین بنیادی انٹرفیس پیش کرتا ہے: کمانڈ-لائن انٹرفیس (CLI)، ایک HTTP سرور، اور براؤزرز کے لیے ایک WebAssembly (WASM) بلڈ۔ یہ JPEG، PNG، WebP، AVIF، BMP، TIFF، اور SVG سمیت فارمیٹس کو سپورٹ کرتا ہے، جبکہ GIF صرف ڈیکوڈ-ونلی ان پٹ کے طور پر دستیاب ہے۔ یہ ٹول لوکل فائل پروسیسنگ، سرور-سائیڈ امیج ہینڈلنگ، اور کلائنٹ-سائیڈ براؤزر ایپلی کیشنز کے لیے ڈیزائن کیا گیا ہے۔ اہم صلاحیتوں میں کوالٹی کنٹرول کے ساتھ فارمیٹ کنورژن، متعدد فٹ موڈز (contain، cover، fill، inside) کے ساتھ رِیسائزنگ، کراپنگ، روٹیشن، بلرنگ، شارپنگ، واٹرمارکنگ، اور گرےسکیل کنورژن شامل ہیں۔ CLI stdin/stdout کے ذریعے شیل پائپ لائنز کو سپورٹ کرتا ہے اور ریموٹ URLs سے امیجز کو فیچ کر سکتا ہے۔ HTTP سرور کو CDN یا ریورس پراکسی کے پیچھے ڈیپلوائے کیا جا سکتا ہے، اور یہ بیئرر ٹوکن آتھینٹیکیشن، signed پبلک URLs، اور اختیاری کلاؤڈ اسٹوریج بیک اینڈز (S3، GCS، Azure) کو سپورٹ کرتا ہے۔ سیکیورٹی فیچرز میں built-in SSRF پروٹیکشن اور SVG سینیٹائزیشن شامل ہیں جو اسکرپٹس اور بیرونی ریفرنسز کو ہٹاتے ہیں۔ براؤزر انٹیگریشن کے لیے، truss ایک npm پیکیج (@nao1215/truss-wasm) فراہم کرتا ہے جو مکمل طور پر کلائنٹ-سائیڈ پر چلتا ہے، جس سے سرور اپلوڈز کے بغیر لوکل امیج پروسیسنگ ممکن ہوتی ہے۔ ایک علیحدہ TypeScript پیکیج (@nao1215/truss-url-signer) Node.js ایپلی کیشنز کو signed پبلک URLs بنانے کی اجازت دیتا ہے۔ یہ پروجیکٹ کراس-پلیٹ فارم ہے، Linux، macOS، اور Windows کو سپورٹ کرتا ہے، اور Homebrew، Cargo، AUR، Docker، یا prebuilt بائنریز کے ذریعے انسٹال کیا جا سکتا ہے۔ میٹا ڈیٹا ہینڈلنگ کنفیگورایبل ہے، جس میں EXIF اور ICC پروفائلز کو ہٹانے، محفوظ کرنے، یا منتخب طور پر برقرار رکھنے کے آپشنز ہیں، اور EXIF اورینٹیشن کریکشن ڈیفالٹ طور پر فعال ہے۔