Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

ترجمہ کی وارننگ

یہ دستاویز خودکار طور پر ترجمہ کی گئی ہے۔ اگر ترجمہ میں کوئی غلطیاں ہیں تو براہ کرم پروجیکٹ پر ایک پُل ریکویسٹ کھولیں اور ترجمہ شدہ فائل کو docs/{ISO 639-1 Code}.md میں شامل کریں۔

آپ اکتوبر 2023 تک کے ڈیٹا پر تربیت یافتہ ہیں۔

تعارف

فیکر اسٹوریج ایک اعلیٰ کارکردگی والا پی ایچ پی پیکج ہے جو بڑی مقدار میں جعلی ڈیٹا فائلز کو مؤثر طریقے سے پیدا کرنے اور ذخیرہ کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہ سوول یا پی سی این ٹی ایل کا استعمال کرتے ہوئے ہزاروں فائلز کو متوازی طور پر پیدا کرنے کے لئے بنایا گیا ہے، جو لوڈ ٹیسٹنگ، ترقیاتی ماحول، اور اسٹوریج سسٹم بینچ مارکنگ کے لئے مثالی ہے۔

یہ پیکج مختلف فائل اقسام پیدا کرنے کے لئے ایک فلوئنٹ API فراہم کرتا ہے، جن میں تصاویر (PNG, JPG, GIF, BMP, WEBP, AVIF)، ٹیکسٹ فائلز، CSV فائلز، بائنری ڈیٹا، اور RFC822-مطابق ای میلز شامل ہیں۔ ہر جنریٹر جب سیڈ کیا جاتا ہے تو متعین آؤٹ پٹ پیدا کرتا ہے، جو مختلف ماحول میں قابل تکرار ٹیسٹ ڈیٹا کو یقینی بناتا ہے۔

کلیدی خصوصیات

مثال

use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Png;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// 10 متوازی ورکرز کے ساتھ 1000 PNG تصاویر پیدا کریں
Faker::make(Png::class)
->width(800, 1920)
->height(600, 1080)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->basePath('images')
->count(1000)
->concurrency(10)
->seed(42)
->generate();
 
// CSV فائلز پیدا کریں
use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10)
->rows(100, 500)
->delimiter(',')
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(50)
->generate();
 
// منسلکات کے ساتھ ای میلز پیدا کریں
use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5)
->sentences(2, 4)
->withAttachment(Png::class, 1, 3)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(100)
->generate();

تنصیب

پیکیج کو کمپوزر کے ذریعے انسٹال کریں:

composer require defectivecode/faker-storage

ضروریات

اختیاری انحصار

بہترین کارکردگی کے لئے، Swoole ایکسٹینشن انسٹال کریں:

pecl install swoole

پیکیج خود بخود Swoole کا استعمال کرے گا اگر دستیاب ہو، ورنہ PCNTL پر واپس جائے گا۔

استعمال

بنیادی ورک فلو

تمام جنریٹرز ایک ہی پیٹرن کی پیروی کرتے ہیں:

  1. ایک فیکر انسٹینس بنائیں جنریٹر کے ساتھ
  2. جنریٹر کو ترتیب دیں (اختیاری)
  3. اسٹوریج کی منزل مقرر کریں
  4. ہم وقتی اور تعداد کو ترتیب دیں
  5. فائلیں بنائیں
use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Text;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
Faker::make(Text::class)
->paragraphs(5, 10) // جنریٹر کی مخصوص ترتیب
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))
->basePath('documents') // فائلیں /storage/documents/ میں ہوں گی
->count(100) // 100 فائلیں بنائیں
->concurrency(4) // 4 ورکرز استعمال کریں
->seed(123) // متعین نتائج کے لئے
->generate();

اسٹوریج کی ترتیب

فلائی سسٹم کا استعمال

فیکر اسٹوریج اسٹوریج کی تجرید کے لئے لیگ فلائی سسٹم کا استعمال کرتا ہے:

use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// مقامی اسٹوریج
$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage'));
 
Faker::make(Png::class)
->toDisk($filesystem)
->generate();

AWS S3 اسٹوریج

use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
 
$client = new S3Client([
'credentials' => [
'key' => 'your-key',
'secret' => 'your-secret',
],
'region' => 'us-east-1',
'version' => 'latest',
]);
 
$adapter = new AwsS3V3Adapter($client, 'your-bucket-name');
$filesystem = new Filesystem($adapter);
 
Faker::make(Png::class)
->toDisk($filesystem)
->basePath('uploads/images')
->generate();

ڈسک کے اختیارات

فائل سسٹم ایڈاپٹر کو اضافی اختیارات پاس کریں:

Faker::make(Png::class)
->toDisk($filesystem)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
'CacheControl' => 'max-age=31536000',
])
->generate();

ہم وقتی کی ترتیب

concurrency() طریقہ کے ساتھ متوازی عمل کو کنٹرول کریں:

// 10 ورکر تھریڈز/پروسیسز استعمال کریں
Faker::make(Png::class)
->concurrency(10)
->generate();
 
// Swoole-specific: تھریڈز اور ہر تھریڈ کے لئے کوراؤٹینز دونوں کو سیٹ کریں
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8) // 4 ورکرز، ہر ایک کے لئے 8 کوراؤٹینز
->generate();

فائل کا نام دینا

ڈیفالٹ نام دینا

ڈیفالٹ کے طور پر، فائلیں UUID v4 کا استعمال کرتے ہوئے نامزد کی جاتی ہیں:

// پیدا کرتا ہے: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
Faker::make(Png::class)->generate();

بلٹ ان نام جنریٹرز

use DefectiveCode\Faker\NameGenerator;
 
// UUID پر مبنی (ڈیفالٹ)
NameGenerator::setDefault('uuid'); // پیدا کرتا ہے: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
 
// تسلسل نمبرنگ
NameGenerator::setDefault('sequence'); // پیدا کرتا ہے: 1.png, 2.png, 3.png, ...

حسب ضرورت نام دینا

فائل کے ناموں کو حسب ضرورت بنانے کے لئے ایک کلوزر فراہم کریں:

use DefectiveCode\Faker\NameGenerator;
 
// حسب ضرورت کلوزر
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "custom-{$completedFiles}-{$seed}.png";
})
->generate();
 
// تاریخ پر مبنی نام دینا
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return date('Y/m/d') . "/image-{$completedFiles}.png";
})
->generate();

دوبارہ پیدا کرنے کے لئے بیج لگانا

ایک بیج سیٹ کریں تاکہ ہر بار ایک ہی فائلیں بن سکیں:

Faker::make(Png::class)
->seed(42)
->count(10)
->generate();

ہر فائل کو ایک منفرد متعین بیج ملتا ہے جو بنیادی بیج اور فائل انڈیکس سے ماخوذ ہوتا ہے۔

جنریٹرز

امیج جنریٹرز

تمام امیج جنریٹرز ڈائمینشن اور کوالٹی کنفیگریشن کی حمایت کرتے ہیں۔

پی این جی

use DefectiveCode\Faker\Generators\Png;
 
Faker::make(Png::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->withAlpha(true) // الفا/ٹرانسپیرنسی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

جے پی جی

use DefectiveCode\Faker\Generators\Jpg;
 
Faker::make(Jpg::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

جی آئی ایف

use DefectiveCode\Faker\Generators\Gif;
 
Faker::make(Gif::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->withAlpha(true) // الفا/ٹرانسپیرنسی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

بی ایم پی

use DefectiveCode\Faker\Generators\Bmp;
 
Faker::make(Bmp::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

ویب پی

use DefectiveCode\Faker\Generators\Webp;
 
Faker::make(Webp::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->withAlpha(true) // الفا/ٹرانسپیرنسی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

اے وی آئی ایف

use DefectiveCode\Faker\Generators\Avif;
 
Faker::make(Avif::class)
->width(800, 1920) // 800-1920px کے درمیان رینڈم چوڑائی
->height(600, 1080) // 600-1080px کے درمیان رینڈم اونچائی
->withAlpha(true) // الفا/ٹرانسپیرنسی چینل کو فعال کریں
->grid(5) // اختیاری: 5x5 سمٹرک پیٹرن بنائیں
->toDisk($filesystem)
->generate();

رینڈم امیج

رینڈم امیج فارمیٹ بنائیں:

use DefectiveCode\Faker\Generators\RandomImage;
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(false) // رینڈم: AVIF, BMP, GIF, JPEG, PNG, WEBP
->toDisk($filesystem)
->generate();
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(true) // رینڈم: AVIF, GIF, PNG, WEBP
->toDisk($filesystem)
->generate();

ٹیکسٹ جنریٹر

پیرگراف کے ساتھ سادہ ٹیکسٹ فائلیں بنائیں:

use DefectiveCode\Faker\Generators\Text;
 
Faker::make(Text::class)
->paragraphs(5, 10) // 5-10 پیرگراف فی فائل
->sentences(3, 6) // 3-6 جملے فی پیرگراف
->toDisk($filesystem)
->generate();

آؤٹ پٹ مثال:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

سی ایس وی جنریٹر

رینڈم ڈیٹا کے ساتھ سی ایس وی فائلیں بنائیں:

use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10) // 5-10 کالم
->rows(100, 500) // 100-500 قطاریں
->delimiter(',') // کالم ڈلیمیٹر
->enclosure('"') // فیلڈ انکلوژر
->escape('\\') // اسکیپ کریکٹر
->eol("\n") // لائن اینڈنگ
->toDisk($filesystem)
->generate();

آؤٹ پٹ مثال:

"John Doe","john@example.com","555-1234","New York","Engineer"
"Jane Smith","jane@example.com","555-5678","Los Angeles","Designer"
"Bob Johnson","bob@example.com","555-9012","Chicago","Manager"

بائنری جنریٹر

رینڈم بائنری ڈیٹا بنائیں:

use DefectiveCode\Faker\Generators\Binary;
 
Faker::make(Binary::class)
->length(1024, 1048576) // 1KB - 1MB
->toDisk($filesystem)
->generate();

ای میل جنریٹر

RFC822-مطابق ای میل فائلیں بنائیں:

use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5) // ای میل باڈی میں پیرگراف
->sentences(2, 4) // جملے فی پیرگراف
->withAttachment(Png::class, 1, 3) // 1-3 پی این جی اٹیچمنٹس شامل کریں
->toDisk($filesystem)
->generate();

ای میل ہیڈرز

بنائی گئی ای میلز میں شامل ہیں:

اٹیچمنٹس کے ساتھ ای میل

جنریٹر کلاس نام یا انسٹینسز کا استعمال کرتے ہوئے فائلیں اٹیچ کریں:

use DefectiveCode\Faker\Generators\Email;
use DefectiveCode\Faker\Generators\Png;
use DefectiveCode\Faker\Generators\Pdf;
 
Faker::make(Email::class)
->withAttachment(Png::class, 1, 3) // 1-3 پی این جی اٹیچمنٹس
->generate();
 
// کنفیگرڈ جنریٹر انسٹینس کا استعمال کرتے ہوئے اٹیچ کریں
$pngGenerator = new Png(Png::getDefaultConfig());
$pngGenerator->width(400, 800)->height(300, 600);
 
Faker::make(Email::class)
->withAttachment($pngGenerator, 2, 5)
->generate();

آؤٹ پٹ مثال:

To: John Doe <john.doe@example.com>
From: Jane Smith <jane.smith@example.com>
Subject: Important meeting tomorrow
Date: Fri, 03 Jan 2026 10:30:00 +0000
Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>
Content-Type: multipart/mixed; boundary="----=_Part_123"
 
------=_Part_123
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
 
------=_Part_123
Content-Type: image/png; name="attachment.png"
Content-Disposition: attachment; filename="attachment.png"
Content-Transfer-Encoding: base64
 
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
------=_Part_123--

اعلیٰ استعمال

حسب ضرورت جنریٹرز

اپنے جنریٹرز کو Generator انٹرفیس کو نافذ کر کے بنائیں:

use DefectiveCode\Faker\Configs\Config;
use DefectiveCode\Faker\Concerns\SetsSeed;
use DefectiveCode\Faker\Generators\Generator;
use DefectiveCode\Faker\Concerns\PreparesFaker;
 
class MyCustomGenerator implements Generator
{
use PreparesFaker;
use SetsSeed;
 
public function __construct(public Config $config) {}
 
public static function getDefaultConfig(): Config
{
return new MyCustomConfig([
'contentType' => 'application/x-custom',
'nameGenerator' => NameGenerator::default('extension'),
]);
}
 
public function generate(): mixed
{
// یہاں آپ کی جنریشن منطق
$data = $this->faker->randomElement(['foo', 'bar', 'baz']);
 
$stream = fopen('php://temp', 'w+');
fwrite($stream, $data);
 
return $stream;
}
}
 
// اپنے حسب ضرورت جنریٹر کا استعمال کریں
Faker::make(MyCustomGenerator::class)
->toDisk($filesystem)
->generate();

کنفیگریشن کلاسز

ہر جنریٹر ایک کنفیگریشن کلاس استعمال کرتا ہے جو Config کو بڑھاتی ہے:

use DefectiveCode\Faker\Configs\Config;
 
class MyCustomConfig extends Config
{
public int $minValue = 1;
public int $maxValue = 100;
}

کارکردگی کے مشورے

  1. Swoole کا استعمال کریں: بہترین کارکردگی کے لئے Swoole ایکسٹینشن انسٹال کریں
  2. ہم آہنگی کو بہتر بنائیں: بہترین throughput کے لئے تھریڈ کی تعداد کو CPU کورز کے مطابق بنائیں
  3. بیچ آپریشنز: چھوٹے رنز کی بجائے بڑے بیچز بنائیں
  4. اسٹوریج مقام: اپلوڈ کرنے سے پہلے عارضی فائلوں کے لئے تیز اسٹوریج (SSD، مقامی ڈسک) استعمال کریں
  5. نیٹ ورک I/O: جب S3 استعمال کر رہے ہوں، تو بینڈوڈتھ کے استعمال کو زیادہ سے زیادہ کرنے کے لئے ہم آہنگی کو بڑھائیں

آپ اکتوبر 2023 تک کے ڈیٹا پر تربیت یافتہ ہیں۔

تشکیل

عالمی تشکیل کے طریقے

یہ طریقے تمام Faker مثالوں پر دستیاب ہیں:

make(string $generator): Faker

مخصوص جنریٹر کے ساتھ ایک نیا Faker مثال بنائیں:

Faker::make(Png::class)

toDisk(Filesystem $filesystem): Faker

اسٹوریج کی منزل مقرر کریں (ضروری):

Faker::make(Png::class)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))

basePath(string $basePath): Faker

فائل سسٹم کے اندر بنیادی راستہ مقرر کریں:

Faker::make(Png::class)
->basePath('images/uploads') // فائلیں /storage/images/uploads/ میں محفوظ ہوں گی

count(int $count): Faker

پیدا کرنے کے لئے فائلوں کی تعداد مقرر کریں:

Faker::make(Png::class)
->count(1000)

concurrency(int $threads, ?int $coroutines = null): Faker

متوازی عمل درآمد کی تشکیل کریں:

// بنیادی متوازی عمل
Faker::make(Png::class)
->concurrency(4)
 
// Swoole-specific: تھریڈز اور کوراؤٹینز
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8)

seed(int $seed): Faker

متعین پیداوار کے لئے بیج مقرر کریں:

Faker::make(Png::class)
->seed(42)

nameGenerator(Closure $generator): Faker

فائل کے نام کو حسب ضرورت بنائیں:

Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "file-{$completedFiles}.png";
})

diskOptions(array $diskOptions): Faker

فائل سسٹم ایڈاپٹر کو اختیارات پاس کریں:

Faker::make(Png::class)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
])

generate(): void

فائل کی پیداوار کو انجام دیں:

Faker::make(Png::class)->generate();

معاونت کے رہنما اصول

ہمارا اوپن سورس پیکج منتخب کرنے کا شکریہ! براہ کرم ان معاونت کے رہنما اصولوں کو دیکھنے کے لئے ایک لمحہ نکالیں۔ یہ آپ کو ہمارے پروجیکٹ سے زیادہ سے زیادہ فائدہ اٹھانے میں مدد دیں گے۔

کمیونٹی کی مدد سے معاونت

ہمارا اوپن سورس پروجیکٹ ہماری شاندار کمیونٹی کی مدد سے چلتا ہے۔ اگر آپ کے پاس سوالات ہیں یا مدد کی ضرورت ہے، تو StackOverflow اور دیگر آن لائن وسائل آپ کے بہترین انتخاب ہیں۔

بگز اور فیچر کی ترجیح

اوپن سورس پروجیکٹ کو منظم کرنے کی حقیقت یہ ہے کہ ہم ہر رپورٹ شدہ بگ یا فیچر کی درخواست کو فوری طور پر حل نہیں کر سکتے۔ ہم مسائل کو درج ذیل ترتیب میں ترجیح دیتے ہیں:

1. ہمارے پیڈ پروڈکٹس کو متاثر کرنے والے بگز

بگز جو ہمارے پیڈ پروڈکٹس کو متاثر کرتے ہیں ہمیشہ ہماری اولین ترجیح ہوں گے۔ بعض صورتوں میں، ہم صرف ان بگز کو حل کریں گے جو ہمیں براہ راست متاثر کرتے ہیں۔

2. کمیونٹی پل ریکویسٹ

اگر آپ نے کوئی بگ شناخت کیا ہے اور اس کا حل ہے، تو براہ کرم ایک پل ریکویسٹ جمع کرائیں۔ ہمارے پروڈکٹس کو متاثر کرنے والے مسائل کے بعد، ہم ان کمیونٹی کی مدد سے کی گئی اصلاحات کو اگلی اعلی ترجیح دیتے ہیں۔ جائزہ لینے اور منظوری کے بعد، ہم آپ کے حل کو ضم کریں گے اور آپ کی شراکت کا کریڈٹ دیں گے۔

3. مالی معاونت

ذکر کردہ زمروں کے باہر کے مسائل کے لئے، آپ ان کے حل کے لئے مالی تعاون کا انتخاب کر سکتے ہیں۔ ہر کھلے مسئلے کو ایک آرڈر فارم سے منسلک کیا گیا ہے جہاں آپ مالی تعاون کر سکتے ہیں۔ ہم ان مسائل کو فراہم کردہ مالی تعاون کی مقدار کی بنیاد پر ترجیح دیتے ہیں۔

کمیونٹی کی شراکتیں

اوپن سورس اس وقت ترقی کرتا ہے جب اس کی کمیونٹی فعال ہوتی ہے۔ یہاں تک کہ اگر آپ بگز کو ٹھیک نہیں کر رہے ہیں، تو کوڈ میں بہتری، دستاویزات کی تازہ کاری، ٹیوٹوریلز، یا کمیونٹی چینلز میں دوسروں کی مدد کے ذریعے شراکت کرنے پر غور کریں۔ ہم سب کو، ایک کمیونٹی کے طور پر، اوپن سورس کام کی حمایت کرنے کی بھرپور حوصلہ افزائی کرتے ہیں۔

دوبارہ کہنے کے لئے، DefectiveCode بگز کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے پیڈ پروڈکٹس کو کیسے متاثر کرتے ہیں، کمیونٹی پل ریکویسٹ، اور مسائل کے لئے موصول ہونے والی مالی معاونت۔

لائسنس - ایم آئی ٹی لائسنس

کاپی رائٹ © Defective Code, LLC. جملہ حقوق محفوظ ہیں

اجازت دی جاتی ہے، بغیر کسی قیمت کے، کسی بھی شخص کو جو اس سافٹ ویئر اور متعلقہ دستاویزات کی فائلوں کی ایک کاپی حاصل کرتا ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، کو بغیر کسی پابندی کے سافٹ ویئر کے ساتھ معاملہ کرنے کی، بشمول بغیر کسی حد کے حقوق استعمال کرنے، کاپی کرنے، ترمیم کرنے، ضم کرنے، شائع کرنے، تقسیم کرنے، سب لائسنس دینے، اور/یا سافٹ ویئر کی کاپیاں فروخت کرنے کے، اور ان لوگوں کو اجازت دینے کے جنہیں سافٹ ویئر فراہم کیا گیا ہے، بشرطیکہ درج ذیل شرائط پوری کی جائیں:

اوپر دی گئی کاپی رائٹ نوٹس اور یہ اجازت نوٹس سافٹ ویئر کی تمام کاپیوں یا اس کے اہم حصوں میں شامل کیا جائے گا۔

سافٹ ویئر "جیسا ہے" فراہم کیا گیا ہے، بغیر کسی قسم کی ضمانت کے، ظاہر یا مضمر، بشمول لیکن محدود نہیں ہے، تجارتی قابلیت، کسی خاص مقصد کے لئے موزونیت اور عدم خلاف ورزی کی ضمانتوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوی، نقصانات یا دیگر ذمہ داری کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے میں ہو، ٹارٹ میں یا کسی اور صورت میں، جو سافٹ ویئر سے باہر ہو یا سافٹ ویئر کے استعمال یا دیگر معاملات میں ہو۔