Instant messajlash dunyosi o'zgartirilganda, bir necha eskadagi protokollar hali ham faollik ko'rsatadi. Open OSCAR Server bu shu protokollardan biri OSCAR (AOL Instant Messenger va ICQ uchun asos) bilan ishlaydigan ochkodli server yechimi. U Go tilida yozilgan, shuning uchun platformadan mustaqil, tez va modular tuzilishga ega. Maqola bu loyihani tarixi, texnik tarkibi, qo'llanilishi va hozirgi messajlash tizimlari bilan taqqoslash orqali chuqurroq tushuntiradi.
Tarixiy fon va loyihaning tug'ilishi
1990-yillarda AIM va ICQ jahon bo'yicha mashhur messajlash xizmatlari bo'ldi. Ular OSCAR nomli maxfiys protokol orqali server bilan aloqa qurardi. Yil yuzdan beri AOL va Yahoo! bu xizmatlarni yopish yoki o'zgartirish boshlandi, lekin bir qism foydalanuvchilar eski mijoz dasturlaridan foydalanişni xohlagan holda qoldi. Shuning uchun ochkodli topgarlar OSCAR protokolini qayta ishlashga qaror qildi. Open OSCAR Server 2022-yilarda GitHub'da ochiq kod sifatida chiqarilgan, dastlabki maqsodi AIM v1.x–v7.x va ICQ 98x–5.x versiyalari bilan to'liq moslashishni ta'minlashdi.
Loyihaning asosiy maqsodi kommersiyalashtirmagan, faollikni jamoaviy qo'llab-quvvatlashga bag'ishlash. Shuning uchun MIT litsenziyasi asosida tarqatiladi, bu ise har bir dasturchi kodni o'zgartirishi, taklif qilishi yoki kommersiyali loyihalarda ishlatishi mumkin. Disclaimer bo'limida ham ko'rsatilganidek, loyihat AOL yoki Yahoo! bilan resmi bog'liq emas va donatsiya qabul qilmaydi.
Texnik xususiyatlar va qo'llab-quvvatlanadigan funksiyalar
Open OSCAR Server OSCAR protokolining ikki asosiy versiyasi — TOC1 va TOC2 — bilan ham, shuningdek, asl OSCAR binar protokoli bilan ham ishlaydi. Bu u yerga bir necha klassik AIM va ICQ mijozlarini ulashga imkon beradi. Qo'llab-quvvatlanadigan funksiyalar quyidagilarni o'z ichiga oladi:
- AIM mijozlari: Windows AIM v1.x–v5.x, v6.x–v7.x versiyalari;
- Xabarlar: shaxsiy va gruppaviy chat, away xabarlar, profil ma'lumotlari;
- Do'stlar ro'yxati: qo'shish, o'chirish, bloklash va ogohlantirish tizimi;
- Ikondalar: buddy icon (avatr) qo'llab-quvvatlasi v4.x va v5.x mijozlari uchun;
- Chat xonalari: ochiq va yopiq xonalar, nomli va parol bilan himoyalangan;
- Fayl ulashish: LAN ichida to'g'ridan-to'g'ri ulashish, internet orqali yuborish;
- Foydalanuvchi katalogi: screen_name bo'yicha qidiruv;
- Xavfsizlik: maxfiy xabarlar, bloklash ro'yxati, o'ffline xabarlar;
- Boshqaruv API: REST tarzida buyruqlar (foydalanuvchi qo'shish, o'chirish, parol yangilash, sessiya va chat xonalari ro'yxati).
Barcha buyruqlar JSON formatida qaytariladi, shuning uchun skriptlash yoki avtomatlashtirishga qulay. Masalan, PowerShell yoki curl yordamida foydalanuvchi qo'shish, o'chirish yoki parolni yangilash mumkin.
Serverni ishga tushirish va sozlash
Open OSCAR Serverni ishga tushirish uchun bir necha qadam kerak. Avval Go kompilyatori o'rnatiladi (versiya 1.20 yoki undan yuqori). Keyin repozitoriyadan kod olinadi:
Invoke-WebRequest -Uri http://localhost:8080/user -Method Get
git clone https://github.com/open-oscar-server/open-oscar-server.git
cd open-oscar-server
go build -o open-oscar-server .
Compiled fayl ishga tushirilganda, standart port 8080-da tinglaydi. Sozlash fayli (config.yaml) orqali port, maxfialik kaliti, login cheklovlari va log darajasi o'zgartirilishi mumkin. Misol uchun:
Invoke-WebRequest -Uri http://localhost:8080/user `
-Body '{"screen_name":"MyScreenName", "password":"thepassword"}' `
-Method Post `
-ContentType "application/json"
port: 8080
max_users: 500
allow_registration: true
log_level: info
Server ishga tushirilgandan keyin, AIM yoki ICQ mijozida server manzili localhost:8080 yoki tashqi IP manzil ko'rsatiladi. Klasik mijozlar OSCAR protokolini avtomatik tanib, login va parolni kiritgandan keyin do'stlar ro'yxati, chat xonalari va profil ma'lumotlari sinhronlashadi.
Invoke-WebRequest -Uri http://localhost:8080/user `
-Body '{"screen_name": "user123"}' `
-Method Delete `
-ContentType "application/json"
Taqqoslash: Open OSCAR Server vs alternativlar
Hozirgi kunlarda messajlash serverlari uchun bir necha ochkodli yechimlar mavjud: Matrix (Synapse), Ejabberd (XMPP), Rocket.Chat va Telegramning ochkodli versiyasi. Lekin ularning hammasi modern JSON/WebSocket yoki XMPP protokollarini ishlatadi, shuning bilan OSCAR-ga moslashadigan mijozlar bilan ishlamaydi. Open OSCAR Server ning asosiy afzalligi shu yerda yatadi: u faqat OSCAR protokolini to'liq pechada qo'llab-quvvatlaydi, shuning bilan 20-yilladan eski AIM va ICQ dasturlarini yangilashga zaruratsiz ulashishga imkon beradi.
Invoke-WebRequest -Uri http://localhost:8080/user/password `
-Body '{"screen_name":"MyScreenName", "password":"thenewpassword"}' `
-Method Put `
-ContentType "application/json"
Ejabberd yoki Matrix bilan taqqoslaganda, Open OSCAR Server kamroq xususiyat (video qo'ng'iroq, bot platformalar, intégratsiya) taqdim etaydi, lekin uning og'irligi past, konfiguratsiyasi oddi va resurslar consumptioni minimal. Bu u yerga eski kompyuterlar yoki cheklovlanadigan VPS muhitida ishlatish uchun ideal variant.
Cheklovlar va kelajak rivojlanish yo'nalishlari
Har bir yechimning cheklovlari mavjud. Open OSCAR Server hozirda quyidagi chegaralarga ega:
- Shifrlash: OSCAR protokoli end-to-end shifrlashni taqdim etmaydi, shuning bilan ma'lumotlar tarmoq orqali ochiq ko'rinishda o'tishi mumkin (SSL/TLS orqali tunnel qilish mumkin lekin standartda yo'q);
- Modern xususiyatlar: stikerlar, gif animatsiyalar, guruh videokonferensiya va botlar yo'q;
- Qo'llab-quvvatlash: faollik komunidadi hali kichik, shuning uchun tez tug'lash va dokumentatsiya gaplarini to'ldirishga vaqt ketishi mumkin.
Kelajakda jamoaning rejalari:
- TLS integriatsiyasi orqali ma'lumotlarni shifrlash;
- OSCAR protokolini kengaytirish, masalan, fayl uzatish hajmini oshirish yoki metadata qo'shish;
- Docker imajini rasmiylashtirish va Kubernetes orqali scalableness;
- Web-interfeys yoki admin panel qo'shish, bu esa serverni boshqashni oddiy-lashtiradi.
Xulosa
Open OSCAR Server, eskadan beri foydalanilayotgan AIM va ICQ protokollari dunyosiga ochkodli, kengaytiriladigan va oddi yechim taqdim etadi. U Go tilida yozilgan tufayli platformadan mustaqil, past resursli ishlaydi va REST API orqali boshqarishni osonlashtiradi. Lekin uni zamonaviy xavfsizlik standartlari va funksional kengaytirishga yo'naltirish talab qiladi. Agar siz klassik mijozlardan foydalanişni xohlayasiz yoki OSCAR protokoli haqida o'rganishni istasangiz, bu loyihani o'rganish va uning kodga contribution qilish — yaxshi boshlanish nuqtasi bo'ladi.
Asl manba: github.com