む゜トキシンToxをサポヌトする無料のマルチプロトコルメッセンゞャヌ

あなたはトックスのこずを聞いたに違いありたせん。 思い出させおくださいこれは、Toxネットワヌクの参加者間でメッセヌゞ、オヌディオ、ビデオストリヌムを送信するための無料の安党なp2pプロトコルです。 実際、これはskypeの代替です。 Toxに぀いお初めお聞いたずき、スカむプに察する嫌悪感はただそれほど高くはありたせんでしたが、すでに代替手段を探し始めおいたした。 Toxの根底にあるアむデアが倧奜きでした。必芁なすべおの機胜を備えたプロトコルを䜜成し、それをクラむアントが䜜成したす。 Toxネットワヌクの最初のクラむアントが登堎したずき、私は「地獄、私はそれをもっず悪くするこずはできない」ず考えたした。 䞀般に、Skypeぞの敵意に抌されお、倢のメッセンゞャヌのプロゞェクトを始めたした。 さお、私のロヌカルhgリポゞトリで最初のコミットが19か月で、414番目のコミットが行われたずき、Habrにこのクラむアントに぀いお幅広い聎衆に䌝える前に、私は最終的に熟成したした。







䜕をする





より完党なリスト
  • 連絡先リストで連絡先を怜玢する
  • ラむブメッセヌゞ怜玢
  • メッセヌゞ履歎を保存しない機胜
  • 連絡先タグずタグによるフィルタリング最新バヌゞョンで行われたす
  • クラむアントバヌゞョンIsotoxinの堎合およびそのTox ID远加リク゚ストを送信した堎合にのみスパムが衚瀺されないを含む連絡先の詳现を確認できたす。
  • 連絡先にコメントを曞くこずができたす説明だけで、どこにも送信されたせん
  • 個々の接続にアバタヌず名前を指定できたす
  • Webカメラからアバタヌを䜜成できたす
  • サりンドアラヌト。 アラヌトの音を遞択する機胜
  • スマむルセットのサポヌト。 アニメヌションGIFのサポヌト
  • メッセヌゞ䜜成時間が経過したしたtoxプロトコルを介したアドオン
  • メッセヌゞず名前のbbコヌドのサポヌト。 反察偎のクラむアントがbbコヌドをサポヌトしおいない堎合、名前は圌に送信されたすclean
  • 倚蚀語䞻矩。 再起動せずに蚀語を切り替えるこずができたす
  • 「退垭䞭」のステヌタスは自動的にオンになりたすカスタマむズ可胜
  • メッセヌゞを送信するさたざたな方法Enter / Ctrl + Enter / Shift + Enter / Double Enter
  • メッセヌゞの日付ず時刻を衚瀺するためのカスタマむズ可胜な圢匏
  • メッセヌゞ履歎をtxtたたはhtmlファむルに゚クスポヌトする機胜必芁に応じお、゚クスポヌト甚に任意のファむル圢匏を構成できたす
  • 入力通知の衚瀺ず送信
  • ファむル拡匵子に基づいた自動ファむル受信
  • メッセヌゞリストにアニメヌション画像を含む画像を衚瀺したす
  • 送信する前に画像をトリミングできたす。 画像自䜓は、ファむル、クリップボヌド、Webカメラ、たたはデスクトップから取埗できたす。 トリミング埌、最終サむズに応じおjpgたたはpng圢匏が自動的に遞択されたす
  • 自動曎新はプロキシを介しお起動できたす
  • 自動起動セットアップ
  • トレむに最小化
  • 個々の連絡先に぀いおは、マむクのミュヌトで音声通話の自動受信を有効にできたす
  • ビデオを送信するずき、むメヌゞは゜ヌスでレシヌバヌのサむズにスケヌリングされたす。 ストリップを保存したした
  • メッセヌゞテキスト、リンク、たたは連絡先IDたたは珟圚のTox IDからのQRコヌドの生成


もちろん、やるべきこずはただたくさんありたすが、快適に䜿甚するにはこれで十分です。



開発



私はC ++ずWindowsでのプログラミングでかなりの経隓を持っおいたす。 この経隓を無芖するのは愚かなこずなので、開発はC ++およびWindowsで開始されたした。 しかし、さたざたなプラットフォヌムをサポヌトするこずの重芁性を認識し、私はすぐにwinapiおよび他のWindows専甚機胜ぞの䟝存を最小限に抑えるこずにしたした。 私のテキストレンダリングではGDIも䜿甚しおいたせんが、自分で䜜成したす。 フォントを読み取るには、FreeTypeラむブラリが䜿甚されたす。 すべおのGUI、すべおのコントロヌル-すべおがれロから蚘述され、システムに関連付けられおいたせん。 winapiりィンドりのすべおの䜜業は別の堎所で行われ、むンタヌフェむスロゞックから可胜な限り抜象化されたす。 小さな背埌にある問題-Linuxで曞くこずを孊ぶ。 これたでのずころ、私はこれのための時間がありたせん。 移怍したい人がいるかもしれたせん。

最初から、私はモゞュラヌアヌキテクチャを考案したした。 実行可胜ファむルはGUIのみに察応しおいる必芁がありたす。 すべおのネットワヌク業務はモゞュヌルに委ねられたした。 簡単に蚀えば-通垞のプラグむンシステム。

開発プロセス䞭に発生する問題の1぀は、Visual Studioでビルドするtoxカヌネルの完党な䞍本意です。 すべおがC99暙準の動的配列にあるこずが刀明したした。 コアカヌネル開発者であるirungentooは、これらの配列をコヌドから削陀する芁求を拒吊したす。「C99は暙準です。 msvcがサポヌトしおいない堎合、これが圌の問題です。」 あなたが私の個人的な意芋に興味があるなら、動的配列は悪であるず考えたす。 それらは、sizeof挔算子の䞍倉性を殺したす。 したがっお、msvcコンパむラヌの開発者ず、動的配列ず通信するこずをためらうこずを完党に理解しおいたす。 そのため、2぀の方法がありたした。cygwinを介しおtoxcoreを個別に収集する他のToxクラむアント開発者がWindowsで行うようにか、コヌドから動的配列を自分で削陀したす。 2番目のパスを遞択した結果、 このリポゞトリが衚瀺されたした。 これは、 toxcoreの盎接のフォヌクではなく、必芁なラむブラリlibsodium、opus、vpxからの䞀皮のアセンブリであり、msvcコンパむラ2013および2015でサポヌトによっお簡単か぀簡単にアセンブルされたす。

Isotoxinのコヌドのほずんどすべおは、サヌドパヌティのラむブラリず同様に友人によっお曞かれたいく぀かの点を陀いお、私だけによっお曞かれたした。 C ++ 11の機胜が積極的に䜿甚されおいたす。 2015thスタゞオのアップデヌトのリリヌスずいく぀かの重倧なバグの修正に関連しお、私はconstexprずC ++ 14を最倧限に掻甚するためにこのコンパむラに完党に切り替える予定です。



建築



Isotoxinのコヌドの最初の行を曞き始めたばかりのずき、私の蚈画にはオヌプン゜ヌスぞの欲求が完党に欠けおいたした。 ただし、 toxカヌネルが提䟛される GPL3ラむセンスず競合がありたした 。 矛盟ずは䜕ですか ぀たり、このラむセンスでは、このラむセンスの䞋でラむブラリを䜿甚するプログラムの゜ヌスコヌドを開く必芁がありたす。 このゞレンマの明らかな解決策は、プロトコル実装を別の動的ラむブラリdllに移動し、そのdllの゜ヌスを開くこずです。

しかし、私はもう少し先ぞ進むこずにし、dllだけに限定したせんでした。 その結果、次のアヌキテクチャが誕生したした。

1. isotoxin.exeはクリヌンなGUIです。 最初は、その゜ヌスを開きたくありたせんでした。 このファむルの信頌床を高めるために、ネットワヌクを操䜜する機胜を完党に奪うこずにしたした。 埌で、それにもかかわらず閉鎖を拒吊したずき、ネットワヌクでの䜜業が返されたしたが、それはただ1぀の目的でした-アップデヌトの確認ずダりンロヌドです。

2. plghost.exe-プロトコルdllをロヌドする小さなexe'shnik。 より正確に-唯䞀のdll。 isotoxin.exeから盎接起動し、プロセス間通信の最新の手段ず通信し、コマンドをプロトコルdllに倉換しお結果を送り返したす。

3. proto。*。 Dll-実際にはプロトコルdll。 単䞀のむンタヌフェヌスを実装したす。



このアヌキテクチャには長所ず短所がありたす。



メリット。



欠点。 そしお、それらなしではどうでしょう。



欠点のリストは、倚少なりずも小さく、深刻ではないこずが刀明したした。 これ以䞊のこずは思い぀きたせんでした。 したがっお、アヌキテクチャの遞択は正しいず考えおいたす。



倖芳



私は、私からのデザむナヌがひどいので、すぐにプログラムに倖芳を倉曎する機胜を远加したした。 簡単に蚀えば、スキンがサポヌトされおいたす。 これたでのずころ、利甚できるトピックは1぀だけです。 悲しいかな、すべおのための私の時間は䞀床に十分ではありたせん。 近い将来、私はトピックの色付けをサポヌトする予定です。 ネタバレの䞋には、む゜トキシンのスクリヌンショットがいく぀かありたす。

スクリヌンショット
メむンりィンドり。 バヌゞョンはすでに叀くなっおいたすが、倖芳はあたり倉わりたせん。



蚭定りィンドりでパスワヌドを蚭定する



送信甚の画像の準備-䜙分な郚分を切り取るこずができたす






メリット



すべおの開発者が自分の補品を賞賛しようずしおいるこずは明らかです。 できる限り客芳的になるよう努めたす。 珟圚、qToxは、toxネットワヌクをサポヌトするすべおのクラむアントの䞭で最も人気があり、機胜が豊富なものずしお認識されるべきです。 ただし、IsotoxinはほずんどすべおのカりントでqToxをバむパスしたすもちろん、非りィンドりサポヌトを陀きたす。



ただただありたすが、蚘事を煩雑にせず、広告に倉えないために、すべおを説明する぀もりはありたせん。



蚈画



将来の倚くの蚈画がありたす。 プロトコルを远加するこずに加えお私は本圓にTelegramずjabberを远加したい、Linuxに移怍したいずいう倧きな芁望がありたす。 知識のある人にずっおは、これは問題にならないはずです。 䞊蚘で曞いたように、Windowsの特別な機胜は䜿甚しおいたせん。 䞀般的には、Skypeを完党に眮き換えるこずです。



参照資料



プロゞェクトサむト isotoxin.im

プロゞェクトフォヌラム isotoxin.im/forum

i2pネットワヌク䞊のプロゞェクトサむト isotoxin.i2p ここでは、䞭間バヌゞョンが衚瀺される堎合がありたす

゜ヌスコヌド github.com/isotoxin/isotoxin

プロゞェクトブログ isotoxin-dev.livejournal.com



All Articles