TurboGears
টার্বোগিয়ার্স একটি পাইথন ওয়েব অ্যাপ্লিকেশন কাঠামো যা ওয়েবওব, এসকিউএলএএলকেমি, কাজিকি টেমপ্লেট ভাষা এবং রিপোজের মতো বেশ কয়েকটি ডাব্লুএসজিআই উপাদান নিয়ে গঠিত। টার্বোগিয়ার্স মডেল-ভিউ-কন্ট্রোলার (এমভিসি) স্থাপত্যের চারপাশে ডিজাইন করা হয়েছে, অনেকটা স্ট্রটস বা রুবি অন রেলসের মতো, যা পাইথনে দ্রুত ওয়েব অ্যাপ্লিকেশন বিকাশকে সহজ এবং আরও রক্ষণাবেক্ষণযোগ্য করার জন্য ডিজাইন করা হয়েছে। সংস্করণ 2.3 থেকে কাঠামোটি একটি "ন্যূনতম মোড" প্রদান করছে যা এটিকে এমন পরিবেশে ব্যবহারের জন্য একটি মাইক্রোফ্রেমওয়ার্ক হিসাবে কাজ করতে সক্ষম করে যেখানে পুরো স্ট্যাকের প্রয়োজন নেই বা প্রয়োজন নেই। টার্বোগিয়ার্সের উপাদান টার্বোগিয়ার্স অসংখ্য ভিন্ন লাইব্রেরি এবং মিডলওয়্যারের উপরে নির্মিত। ডিফল্ট সরঞ্জামগুলি 1. x, 2. x এবং 2.3 + সিরিজের মধ্যে পরিবর্তিত হয়েছে, তবে এই উপাদানগুলির বেশিরভাগই উভয় ক্ষেত্রেই ব্যবহার করা যেতে পারে কারণ অনেক বিকল্প কনফিগারেশনের জন্য সমর্থন রয়েছে। একজন ডেভেলপার নিম্নলিখিত প্রাথমিক উপাদানগুলির সঙ্গে যোগাযোগ করবেন। টার্বোগিয়ার্স 2. x উপাদান এসকিউএলএএলকেমি (মডেল)-ব্যবহারকারীর ডাটাবেসের টেবিল কাঠামো এবং ব্যবহারকারীর নিয়ামকের সাথে যোগাযোগ করতে পারে এমন পাইথন বস্তুর সাথে কীভাবে তাদের লিঙ্ক করা যায় তা সংজ্ঞায়িত করে। মিং (মডেল)-মঙ্গোডিবি-র জন্য ডেটা অ্যাক্সেস স্তর সরবরাহ করে, অনেকটা এসকিউএলএএলকেমির মতো ব্যবহারকারীর নিয়ামকের সাথে যোগাযোগ করতে পারে এমন পাইথন বস্তুর সাথে মঙ্গোডিবি সংগ্রহকে কীভাবে সংযুক্ত করা যায় তা সংজ্ঞায়িত করে। কাজিকি (পূর্বে জেনশি) (দেখুন)-ব্যবহারকারী যে এইচটিএমএল বা এক্সএইচটিএমএল তৈরি করবে তার জন্য টেমপ্লেটগুলি সংজ্ঞায়িত করে। এখানেই ব্যবহারকারী ক্লায়েন্টের সাথে যোগাযোগ করবে এমন ফ্রন্ট-এন্ডকে সংজ্ঞায়িত করে। রিপোজ-Repoze.who নিরাপত্তা (সনাক্তকরণ এবং প্রমাণীকরণ) পরিচালনা করতে ব্যবহৃত হয়। ব্যবহারকারীরা নিয়ন্ত্রকদের সাথে সংযুক্ত ভবিষ্যদ্বাণীগুলির উপর ভিত্তি করে অনুমোদনের নিয়মগুলি সংজ্ঞায়িত করতে পারেন, কাঠামোটি ইতিমধ্যে কিছু অন্তর্নির্মিত ভবিষ্যদ্বাণী সরবরাহ করে, তবে কাস্টমগুলি লেখা যেতে পারে। তোস্কাউইজেট-ফর্ম এবং জটিল জিইউআই তৈরি করার জন্য প্রাথমিক উইজেট লাইব্রেরি। টোস্কা ডিফল্টরূপে সহজ এইচটিএমএল ফর্ম তৈরি করবে, তবে আরও উন্নত জাভাস্ক্রিপ্ট উইজেট এবং টুলকিটের সাথে সংযোগ স্থাপনের জন্য মিডলওয়্যার হিসাবেও ব্যবহার করা যেতে পারে। টার্বোগিয়ার্স 1. x-এর বিপরীতে, আর কোনও পছন্দের/সমন্বিত জাভাস্ক্রিপ্ট লাইব্রেরি নেই। গিয়ারবক্স-একটি টুলকিট যা টার্বোগিয়ার্স দ্বারা প্রকল্পগুলি পরিচালনা করতে, নতুন তৈরি করতে এবং টার্বোগিয়ার্স অ্যাপ্লিকেশনগুলি পরিবেশন করতে ব্যবহৃত হয় তবে ব্যবহারকারী অ্যাপাচি, এনজিএনএক্স বা অন্য কোনও ডাব্লুএসজিআই-সামঞ্জস্যপূর্ণ ওয়েব সার্ভারের সাথেও সংযোগ করতে পারেন। 2. 3-এর আগের সংস্করণগুলিও ব্যবহার করবেঃ পাইলনস (নিয়ন্ত্রক)-এই মিডলওয়্যারটি ব্যবহারকারীর সমস্ত ব্যাক-এন্ড লজিক পরিচালনা করে এবং ওয়েবে ডেটা সরবরাহ করার জন্য ব্যবহারকারীর ওয়েব সার্ভারের সাথে সংযোগ স্থাপন করে। গিয়ারবক্সের জায়গায় ব্যবহৃত কমান্ড টুলকিট এবং ওয়েব সার্ভার ছিল প্যাস্টার। Repoze.what-যথাক্রমে অনুমোদন পরিচালনা করতে ব্যবহৃত হয়। ওয়েবের সংস্পর্শে আসার জন্য ব্যবহারকারীর নিয়ন্ত্রকের উপাদানগুলি সংজ্ঞায়িত করার সময়, repoze.what ভবিষ্যদ্বাণীগুলি নির্ধারণ করে যে কে সেগুলি অ্যাক্সেস করতে পারে এবং কোন শর্তে। টার্বোগিয়ার্স 1. x উপাদান এসকিউএলওবিজেক্ট (মডেল)-ডেটা ব্যাকএন্ড যা অনেক ডাটাবেস সার্ভারে বিদ্যমান ডেটার সাথে একটি ডাটাবেস বা ইন্টারফেস তৈরি করতে পারে। টার্বোগিয়ার্স> = 1.1-এ এসকিউএলএএলকেমি ডিফল্ট হয়ে উঠবে। কিড (ভিউ)-এক্স. এইচ. টি. এম. এল ফ্রন্টএন্ড টেমপ্লেটিং ইঞ্জিন যেখানে সমস্ত টেমপ্লেট বৈধ এক্স. এইচ. টি. এম. এল বা এক্স. এম. এল ফাইল যা সাধারণত এমনভাবে তৈরি করা হয় যা নকশা পরীক্ষা করার জন্য এই টেমপ্লেটগুলিকে সাধারণ এক্স. এইচ. টি. এম. এল ফাইল হিসাবে খোলার অনুমতি দেয়। একই সময়ে এক্সএমএলআইএস পদ্ধতিতে পাইথনের স্নিপেটগুলি এম্বেড করার জন্য বৈশিষ্ট্যগুলি সরবরাহ করা হয়। জেনশি কিড-এর উত্তরসূরি এবং এটি টার্বোগিয়ার্স> = 1.1-এ ডিফল্ট টেমপ্লেটিং ইঞ্জিন হিসাবে প্রতিস্থাপন করবে। এটি কিডের সাথে প্রায় 100% সিনট্যাক্স-সামঞ্জস্যপূর্ণ। চেরিপাই (নিয়ন্ত্রক)-মিডলওয়্যার যা ওয়েব অ্যাপ্লিকেশনগুলিকে ইভেন্ট হ্যান্ডলার লিখে প্রোগ্রাম করার অনুমতি দেয় যা (টার্বোগিয়ার্সের ক্ষেত্রে) টেমপ্লেটগুলিতে ডেটা ফেরত দেয়। জে. এস. ও. এন ডেটা স্ট্রিম হিসাবে অ্যাজাক্স ফ্যাশনেও একই তথ্য পাওয়া যেতে পারে। মোচিকিট হল টার্বোগিয়ার্স 1. x-এর জন্য পছন্দের, কিন্তু ঐচ্ছিক জাভাস্ক্রিপ্ট লাইব্রেরি। এটি জাভাস্ক্রিপ্টের প্রোগ্রামিংকে আরও পাইথোনিক করার জন্য ডিজাইন করা হয়েছে। এটি বেশিরভাগই অ্যাজাক্স বৈশিষ্ট্য এবং উইজেটগুলি বাস্তবায়নের জন্য ব্যবহৃত হয় কারণ এটি অ্যাসিঙ্ক্রোনাস পদ্ধতিতে জে. এস. ও. এন ডেটা স্ট্রিম পেতে একটি ইন্টারফেস সরবরাহ করে। জেনশি ব্যতীত টেমপ্লেট প্লাগইন টেমপ্লেটিং ভাষাগুলি ব্যবহারকারীর অ্যাপের কনফিগারেশন ফাইলের মাধ্যমে ব্যবহার করা যেতে পারে। বর্তমানে 2.1-এ সমর্থিত প্লাগিনগুলি হল মাইঘটি, জিনজা2, মাকো, চিতা এবং কাজিকি। জেনশি কার্যত অভিন্ন হওয়ায় বর্তমানে শিশুদের সহায়তা দেওয়ার পরিকল্পনা করা হয়নি। এই তালিকাটি ভবিষ্যতের সংস্করণগুলিতে পরিবর্তিত হতে পারে। প্রকল্পের ইতিহাস টার্বোগিয়ার্স মূলত 2005 সালে কেভিন ডাঙ্গুর দ্বারা এখনও অপ্রকাশিত জেস্টি নিউজ পণ্যের পিছনের কাঠামো হিসাবে তৈরি করা হয়েছিল। 2005 সালের সেপ্টেম্বরের শেষের দিকে যখন তিনি এটি একটি ওপেন সোর্স ফ্রেমওয়ার্ক হিসাবে প্রকাশ করেন, তখন এটি প্রথম 3 মাসে 30,000 এরও বেশি স্ক্রিনকাস্ট ডাউনলোড পেয়েছিল। 2007 সালের জানুয়ারিতে কেভিন ডাঙ্গুর প্রকল্প নেতা হিসাবে অবসর গ্রহণ করেন এবং আলবার্তো ভালভার্দে তাঁর উত্তরসূরি হিসাবে প্রকল্পটি পরিচালনা করেন, কিন্তু পরবর্তীকালে অন্যান্য ব্যক্তিগত প্রতিশ্রুতির কারণে পদত্যাগ করেন। আলবার্তো এখনও তার তোস্কাউইজেট প্রকল্পের মাধ্যমে টার্বোগিয়ার্স সম্প্রদায়ের সাথে জড়িত। টার্বোগিয়ার্স প্রকল্পটি এখন মার্ক রাম (টার্বোগিয়ার্স 2 ডেভেলপমেন্ট লিড হিসাবে) এবং ফ্লোরেন্ট এইড (টার্বোগিয়ার্স 1. x রিলিজ ম্যানেজার হিসাবে)-এর নেতৃত্বে প্রায় অর্ধ ডজন মূল ডেভেলপারের একটি দল যৌথভাবে পরিচালনা করে। 2007 সালের জুন মাসে সম্প্রদায়টি পাইলনগুলিতে ব্যবহৃত উপাদান এবং প্রোটোকলের উপরে টার্বোগিয়ার্স এপিআই রাখার জন্য পরীক্ষা-নিরীক্ষা শুরু করে এবং অনুমান করা হয়েছিল যে দুটি কাঠামো অবশেষে একত্রিত হতে পারে। তবে, সরকারী টার্বোগিয়ার্স 2 নথিতে বলা হয়েছে যে উভয় প্রকল্পের "ভিন্ন, কিন্তু সামঞ্জস্যপূর্ণ অগ্রাধিকারের" কারণে এটি হওয়ার সম্ভাবনা নেই। পাইলনস নিম্ন স্তরের, সম্প্রসারণযোগ্য নকশায় মনোনিবেশ করতে চেয়েছিল যখন টার্বোগিয়ার্স একটি সম্পূর্ণ, ব্যবহারকারী-বান্ধব প্যাকেজ দেওয়ার দিকে মনোনিবেশ করেছিল এবং তাই দুজনে একইভাবে একসাথে কাজ করে যেমন ডেবিয়ান এবং উবুন্টু এখন করে। 2009 সালের মে মাসে নতুন 2. x শাখার প্রথম স্থিতিশীল মুক্তি হয়। 2008 সালের পতনের হিসাবে, টার্বোগিয়ার্সের একটি বড় এবং স্বাস্থ্যকর সম্প্রদায় রয়েছে যার টার্বোগিয়ার্স মেলিং তালিকায় 3000 এরও বেশি ব্যবহারকারী রয়েছে, নভেম্বর '06-এ প্রকাশিত প্রেন্টিস হলের একটি বই এবং বাস্তব জগতে মোতায়েন করা বেশ কয়েকটি ওপেন-সোর্স এবং মালিকানাধীন টার্বোগিয়ার্স অ্যাপ্লিকেশন রয়েছে। উন্নয়নটি মাঝারি কিন্তু অবিচলিত গতিতে এগিয়ে চলেছে এবং 2008 এবং 2009 সালে গুগল সামার অফ কোড পরামর্শদাতা সংস্থা হিসাবে প্রকল্পের সফল অংশগ্রহণের মাধ্যমে নতুনভাবে চালিত হয়েছিল। ঐতিহ্যবাহী সাইটগুলিকে 2. x-এ রূপান্তরিত করতে সহায়তা করার লক্ষ্যে টার্বোগিয়ার্স 1.1,2009 সালের অক্টোবরে মুক্তি পায়। টার্বোগিয়ার্স 2 যে পরিবর্তন এনেছে তার সাথে সামঞ্জস্য রেখে বইটির একটি নতুন সংশোধনের কাজ চলছে। 2010 সালে, প্রকল্পটি কিছুটা ব্যর্থ হয়। বাস্তব জীবনের সমস্যার কারণে প্রধান ডেভেলপারদের ডাকা হয়েছিল। 2011 সালের জানুয়ারির শেষের দিকে, প্রকল্পটি পুনর্গঠন এবং সঠিক পথে ফিরে আসার জন্য কাজ শুরু করে। বেশ কয়েক মাস পর পর পর পরিকাঠামো পাওয়া এবং কোডিং সমস্যার মাধ্যমে কাজ করার পর, টার্বোগিয়ার্স নতুন সংস্করণ (2.0.4 এবং 2.1.2) প্রকাশ করতে সক্ষম হয়েছে। 2013 সালে, পশ্চাদপদ সামঞ্জস্য বজায় রাখার সময়, প্রকল্পটি পাইথন 3 সমর্থন করার জন্য পাইলন কোডবেস থেকে দূরে সরে গেছে, গতি আপ এবং একটি সহজ ইনস্টল প্রক্রিয়া প্রদান করে। এর ফলে 2013 সালের আগস্টে সংস্করণ 2.3 মুক্তি পায়। এটি একটি দ্রুত রিলিজ চক্রও ঘোষণা করা হয়েছে যা প্রতি ~ 3 মাসে একটি রক্ষণাবেক্ষণ রিলিজ হতে হবে। টার্বোগিয়ার্সের ভবিষ্যত টার্বোগিয়ার্সের উন্নয়ন এখন প্রাথমিকভাবে নতুন 2. x শাখার উপর দৃষ্টি নিবদ্ধ করে, সংস্করণ 2.3 এখন পাইথন 3 সমর্থন সহ প্রধান ট্র্যাক। 1. x শাখা থেকে 2. x শাখায় একটি রূপান্তর পথ 1.1 এবং 1.5 টি রিলিজের মাধ্যমে সরবরাহ করা হয় যা ডিফল্ট ওআরএম এবং টেমপ্লেটিং ভাষাগুলিকে 2. x সিরিজের সাথে মিলে যায়। টার্বোগিয়ার্স দল নতুন ব্যবহারকারীদের কাছে স্পষ্ট করে দিয়েছে যে 2. x হল ভবিষ্যৎ, এবং 1. x কেবল বিদ্যমান ব্যবহারকারীদের সুবিধার জন্য রক্ষণাবেক্ষণ করা হয়। 2011 সালে টার্বোগিয়ার্সের প্রধান ডেভেলপাররা পাইলনস প্রকল্পের সাথে তাদের এবং Repoze.BFG এর ডেভেলপারদের সাথে পিরামিড নামে একটি নতুন একীভূত প্রকল্প হিসাবে যোগ দেওয়ার জন্য আলোচনা করেছে। এই পদক্ষেপের পশ্চাদপদ সামঞ্জস্যের সমস্যাগুলির কারণে এবং টার্বোগিয়ার্স দীর্ঘমেয়াদে একটি নির্ভরযোগ্য প্ল্যাটফর্ম হিসাবে নিশ্চিত হওয়ার কারণে, বর্তমান দলটি পাইলনস প্রকল্পের সাথে সম্ভাব্য সমস্ত কিছুতে সহযোগিতা করার সিদ্ধান্ত নিয়েছে তবে টার্বোগিয়ার্স কোরকে পিরামিডের উপর ভিত্তি না করার সিদ্ধান্ত নিয়েছে। ভবিষ্যতের উন্নয়ন, পাইথন 3 সমর্থন এবং গতির উন্নতি 2.3 শাখায় ঘটেছে যা বিদ্যমান অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্য রেখে টার্বোগিয়ার্স কোরের একটি সম্পূর্ণ পুনর্লিখন দেখেছে, যেহেতু সেই রিলিজ টার্বোগিয়ার্সের পাইলন কাঠামোর উপর ভিত্তি করার পরিবর্তে নিজস্ব কোর ছিল। 2. 3 সিরিজের সময় কাঠামোটি একটি তথাকথিত "ন্যূনতম মোড" নিয়ে পরীক্ষা-নিরীক্ষা করছে যা এটিকে একটি মাইক্রো-ফ্রেমওয়ার্ক হিসাবে কাজ করতে সক্ষম করে তোলে যা প্রকৃতপক্ষে নির্ভরশীলতাকে দশ থেকে মাত্র 3-এ হ্রাস করে এবং তার উদ্দেশ্যগুলির জন্য পাইথন কাঠামোর গোলাপে ফ্লাস্ক এবং জাঙ্গোর মধ্যে টার্বোগিয়ার স্থাপন করে, কারণ এর লক্ষ্য হল একটি মাইক্রো-ফ্রেমওয়ার্ক থেকে একটি পূর্ণ-স্ট্যাক কাঠামোতে স্কেল করতে সক্ষম হওয়া যা কেবল টার্বোগিয়ার 2 বা tg.devtools প্যাকেজ ব্যবহার করা হয় তার উপর নির্ভর করে। সংস্করণ 2.4 থেকে কাঠামোর এখন একটি মডুলার উপাদান ভিত্তিক স্থাপত্য রয়েছে, যা ব্যবহারকারীদের তাদের ইচ্ছামতো উপাদানগুলি সক্ষম এবং প্রতিস্থাপন করতে দেয়, এইভাবে টার্বোগিয়ার্সকে আসলে একটি ওয়েব কাঠামো হওয়ার মিশন অনুসরণ করে যা ব্যবহারকারীদের প্রয়োজনের সাথে স্কেল করে। আরও দেখুন জ্যাঙ্গো কম্পারিসন অফ ওয়েব ফ্রেমওয়ার্কস রেফারেন্স রাম, এম; ডাঙ্গুর, কে; সাইফান, জি (নভেম্বর 7,2006)। টার্বোগিয়ার্স, প্রেন্টিস হল সহ দ্রুত ওয়েব অ্যাপ্লিকেশন। নোটস এক্সটার্নাল লিঙ্ক টার্বোগিয়ার্স হোমপেজ পাইথন (প্রোগ্রামিং ভাষা) সফ্টওয়্যার পাইথন (প্রোগ্রামিং ভাষা) এমআইটি লাইসেন্স ব্যবহার করে ওয়েব ফ্রেমওয়ার্ক সফ্টওয়্যার