মোজো এমন একটি ভাষা যা C++ এর গতির সাথে পাইথনের পাঠযোগ্যতাকে একত্রিত করে।
এটি বিভিন্ন জিনিসের জন্য দরকারী, নিম্ন-স্তরের কোড যা হার্ডওয়্যারের কাছাকাছি, ব্যাক-এন্ড API ডিজাইনের মাধ্যমে, ফ্রন্ট-এন্ড এবং ওয়েবের জগতে। মোজো পুরো আধুনিক স্ট্যাক জুড়ে স্কেল করার জন্য যথেষ্ট শক্তিশালী। ভাষাটিও এআই এবং মেশিন লার্নিংকে মাথায় রেখে ডিজাইন করা হয়েছে — তাই এটি এআই বিকাশকারী এবং ডেটা বিজ্ঞানীদের জন্য বিশেষভাবে কার্যকর হবে।
যদিও মোজো এখনও তরুণ। ইকোসিস্টেমটি দৈনন্দিন সফ্টওয়্যার বিকাশের জন্য সরঞ্জামগুলি হারিয়েছে, যেমন নেটওয়ার্কিং বা বেসিক HTTP অপারেশন।
লাইটবাগ 🔥🐝 একটি সাধারণ HTTP ফ্রেমওয়ার্ক যা বিশুদ্ধ মোজোতে লেখা, ডিফল্টরূপে কোনো বাহ্যিক নির্ভরতা নেই। এটি আরও জটিল প্রজেক্টের ভিত্তি হিসাবে কাজ করার জন্য এবং এটি আপনাকে এপিআইগুলির মতো ওয়েব পরিষেবাগুলি বিকাশ করতে, মৌলিক রাউটিং সেট আপ করতে বা এমনকি মোজোর সাথে এইচটিএমএল পৃষ্ঠাগুলি পরিবেশন করার অনুমতি দেয়, যখন এই ভাষার বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করে, যেমন স্ট্যাটিক টাইপিং এবং দুর্দান্ত পারফরম্যান্স .
শুরু করতে, কেবল Mojo এবং Git ইনস্টল করুন, তারপর Lightbug Github রেপো ক্লোন করুন:
git clone https://github.com/saviorand/lightbug_http.git
এটি ক্লোন হয়ে গেলে, আপনার কমান্ড লাইনের ডিরেক্টরিতে স্যুইচ করুন:
cd lightbug_http
তারপর সার্ভার চালান (হ্যাঁ, এটাই মোজো ফাইল এক্সটেনশন! 🔥):
mojo lightbug.🔥
আপনি কনসোলে মুদ্রিত নিম্নলিখিত লাইন দেখতে হবে:
🔥🐝 Lightbug is listening on 0.0.0.0:8080 Ready to accept connections...
এখন, আপনি আপনার সার্ভারে অনুরোধ করা শুরু করতে পারেন অথবা ব্রাউজারে localhost:8080
বা 0.0.0.0:8080
খোলার চেষ্টা করতে পারেন — আপনার ইন্ট্রো স্ক্রিন দেখতে হবে। ওয়েবে স্বাগতম, মোজো-স্টাইল! এখন, কিছু বাস্তব কোডিং পেতে.
লাইটবাগ এখনও অল্প বয়সে, মানুষ আধুনিক ওয়েবের জন্য যে মূল কার্যকারিতা বিকাশ করতে সক্ষম হবে বলে আশা করে তা ইতিমধ্যেই রয়েছে৷
মনে রাখবেন যেহেতু এখনও কোনো প্যাকেজ ম্যানেজার নেই, তাই আপনার নিজের প্রজেক্টের মধ্যে একটি সাবফোল্ডার হিসেবে lightbug_http
অন্তর্ভুক্ত করা উচিত। এটি একটি মোজো প্যাকেজ হিসাবে কাজ করবে এবং আপনাকে লাইটবাগ থেকে ওয়েব আদিম, সার্ভার এবং আরও অনেক কিছুর মতো সরঞ্জাম আমদানি করার অনুমতি দেবে৷
উদাহরণস্বরূপ, সার্ভার আমদানি করতে আপনার ফাইলের শীর্ষে এটি যোগ করুন:
from lightbug_http.sys.server import SysServer
এটি খাঁটি মোজোতে একটি সার্ভার বাস্তবায়ন আমদানি করবে। আপনি যদি পাইথন বাস্তবায়ন ব্যবহার করতে চান তবে এর পরিবর্তে PythonServer
আমদানি করুন। এটি একই পদ্ধতিতে কাজ করবে।
একটি HTTP পরিষেবা তৈরি করতে, কেবলমাত্র একটি কাঠামো তৈরি করুন যা HTTPService
বৈশিষ্ট্যকে সন্তুষ্ট করে, যার অর্থ নিম্নলিখিত স্বাক্ষর সহ একটি func
পদ্ধতি রয়েছে:
trait HTTPService: fn func(self, req: HTTPRequest) raises -> HTTPResponse: ...
এটি একটি HTTPRequest
গ্রহণ করার জন্য অন্তর্নির্মিত আদিম ব্যবহার করে, মোজো বা পাইথনে আপনার লেখা যেকোনো কাস্টম লজিক চালায় এবং API গ্রাহককে কিছু ডেটা সহ একটি HTTPResponse
অবজেক্ট ফেরত দেয়।
আসুন একটি পরিষেবা তৈরি করি যা কনসোলে 0.0.0.0:8080
এ পাঠানো সমস্ত অনুরোধ প্রিন্ট করে। এটি করার জন্য, my_awesome_service.🔥
নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিতটি পেস্ট করুন:
from lightbug_http import * @value struct Printer(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body) fn main() raises: var server = SysServer() let handler = Printer() server.listen_and_serve("0.0.0.0:8080", handler)
mojo my_awesome_service.🔥
চালান এবং আপনার প্রিয় API ক্লায়েন্টদের থেকে 0.0.0.0:8080
নম্বরে অনুরোধ পাঠান, যেমন Insomnia বা Bruno । আপনি কনসোলে মুদ্রিত অনুরোধ সম্পর্কে কিছু বিবরণ দেখতে হবে।
অভিনন্দন! আপনি এখন আনুষ্ঠানিকভাবে একজন মোজো ওয়েব ডেভেলপার 🔥
উদাহরণে, আমরা let
দিয়ে handler
নামক একটি ভেরিয়েবলকে আরম্ভ করি (অর্থাৎ এটি পুনরায় বরাদ্দ করা যাবে না) এবং স্পষ্টতার জন্য দ্বিতীয় প্যারামিটার হিসেবে listen_and_serve
এ পাস করি।
একটি @value
ডেকোরেটর যোগ করা ঐচ্ছিক: আপনি যদি একজন উন্নত মোজিশিয়ান হন, তাহলে আপনি পরিবর্তে একটি __init__
কনস্ট্রাক্টর পদ্ধতি যোগ করতে পারেন। এটি একই কাজ করবে; @value
শুধুমাত্র এটি এবং অন্যান্য দরকারী পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে তৈরি করে।
struct Printer(HTTPService): fn __init__(inout self): print("Printer initialized!") fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body)
আপনি বলতে পারেন, কিন্তু যে শুধুমাত্র একটি রুট! আধুনিক API এর চেয়ে অনেক বেশি প্রয়োজন।
লাইটবাগ কিছু মৌলিক রাউটিংও করতে পারে:
@value struct ExampleRouter(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw let uri = req.uri() if uri.path() == "/": print("I'm on the index path!") if uri.path() == "/first": print("I'm on /first!") elif uri.path() == "/second": print("I'm on /second!") return OK(body)
এটিকে আপনার my_awesome_service.🔥
এ যোগ করুন।
fn main() raises: var server = SysServer() let handler = ExampleRouter() server.listen_and_serve("0.0.0.0:8080", handler)
আপনি এখন আপনার ব্রাউজার খুলতে পারেন এবং পরিবর্তনগুলি দেখতে localhost:8080/first
, localhost:8080/second
এ যেতে পারেন।
এই কার্যকারিতাটি আপনাকে আপনার নিজস্ব অ্যাপস, লাইব্রেরি এবং পরিষেবাগুলি বিকাশ করার জন্য একটি ভিত্তি দেবে যা HTTP ব্যবহার করে, নমনীয়তা এবং কাস্টমাইজেশন বিকল্পগুলির সুবিধা গ্রহণ করার সাথে সাথে একটি লাইটওয়েট ফ্রেমওয়ার্ক/টুলকিট যা lightbug_http
প্রদান করতে পারে।
আমরা একটি OpenAPI স্পেসিফিকেশন থেকে API তৈরি করা এবং তৈরি করা, আপনার ডেটা মডেল ডিজাইন করা, এবং lightbug_api
এবং lightbug_web
প্যাকেজ তৈরি করে ভবিষ্যতে আরও বেশি আনন্দদায়ক ওয়েব অ্যাপ্লিকেশন তৈরি করার মতো অন্যান্য কাজগুলির পাশাপাশি রাউটিং করার পরিকল্পনা করি৷ বিস্তারিত জানার জন্য আমাদের রোডম্যাপ দেখুন।
লাইটবাগের পরিচয়ের জন্য এটাই 🔥🐝 ! এটা দরকারী ছিল আশা করি.
এটি একটি ওপেন সোর্স, অ-বাণিজ্যিক সম্প্রদায় প্রকল্প।
অনুগ্রহ করে তারকাচিহ্নিত করুন ⭐ আমাদের Github রেপো , Discord- এ যোগদান করুন, এবং আপনার কোডের সাথে কীভাবে অবদান রাখতে হয় তা পরীক্ষা করে দেখুন, যাতে আমরা সহযোগী Mojiciansদের জন্য এটিকে আরও ভাল করে তুলতে পারি।
পরের বার পর্যন্ত!