αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αžΌαž›αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžšαž–αžΈαž…αž˜αŸ’αž„αžΆαž™ Cage

αž‚αŸ„αž›αž”αŸ†αžŽαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’

αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž―αž€αžŸαžΆαžšαž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’ "αž“αž·αž˜αŸ’αž˜αž·αž" αž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž―αž€αžŸαžΆαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αž€αžΆαžšαž›αž»αž” αž€αžΆαžšαž’αžΆαž“ αž€αžΆαžšαžŸαžšαžŸαŸαžš αŸ”αž›αŸ”) αžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš (សអរ) αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αž·αž’αžΈαž€αžΆαžš TCP αŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ

αž˜αž»αžαž„αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž…αž›αŸαž αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αž€αž”αŸ‹ (αžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αŸ…αž›αžΎαž™αž“αŸ’αžαž αŸ„αŸ‡αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„ DBMSs αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž αžΎαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž›αžΎαž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αžŸαžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž› αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαžαŸŒαž˜αžΆαž“ αž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž˜αžΆαž“αž›αŸ’αž”αžΏαž“αž›αžΏαž“ αž—αžΆαž–αž˜αž·αž“αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž“αž·αž„αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ microservice αžŠαŸ‚αž›αž€αžΆαžšαž–αž“αŸ’αž™αžΆαžšαž–αŸαž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αŸαžαŸŒαž˜αžΆαž“αžšαžœαžΆαž„αž˜αŸ‰αžΌαžŒαž»αž›αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αŸ”

αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’

αž”αŸ’αžšαž–αŸαž“αŸ’αž’ Cage (αž˜αžΆαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž - αž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Python 3.7 αž“αŸ…αž›αžΎ Windows) αžšαž½αž˜αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαŸ–

  1. Cageserver - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž―αž€αžŸαžΆαžš (αž€αž‰αŸ’αž…αž”αŸ‹αž˜αž»αžαž„αžΆαžš) αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αžŠαŸ‚αž›αž―αž€αžŸαžΆαžšαž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαž…αž˜αŸ’αž„αžΆαž™αŸ”
  2. класс αž‘αŸ’αžšαž»αž„ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžαž·αžαž·αž‡αž“ αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸ…αžαžΆαž„αž’αžαž·αžαž·αž‡αž“

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ Cage αž‡αŸ†αž“αž½αžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš "αž‘αž˜αŸ’αž›αžΆαž”αŸ‹" αž’αž˜αŸ’αž˜αžαžΆαŸ– αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž, αž”αžΎαž€, αž”αž·αž‘, αž›αž»αž” αž―αž€αžŸαžΆαžšαž€αŸαžŠαžΌαž…αž‡αžΆ αž€αžΆαžšαž’αžΆαž“/αžŸαžšαžŸαŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‚αŸ„αž›αž–αžΈαžš (αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž‘αžΈαžαžΆαŸ†αž„ αž“αž·αž„αž‘αŸ†αž αŸ†αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™)αŸ” αžαžΆαž˜αž‚αŸ†αž“αž·αž αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž“αŸ…αž‡αž·αžαž˜αž»αžαž„αžΆαžšαž―αž€αžŸαžΆαžšαž“αŸƒαž—αžΆαžŸαžΆ C αžŠαŸ‚αž›αž€αžΆαžšαž”αžΎαž€/αž”αž·αž‘αž―αž€αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž "αž“αŸ…αž›αžΎαž†αžΆαž“αŸ‚αž›" αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›/αž‘αž·αž“αŸ’αž“αž•αž›αŸ”

αž“αž·αž™αžΆαž™αž˜αŸ’αž™αŸ‰αžΆαž„αž‘αŸ€αžαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαžœαžαŸ’αžαž» "αž―αž€αžŸαžΆαžš" (αžαŸ’αž“αžΆαž€αŸ‹ _αž’αžΆαž™αž’αžΌ αž“αŸ…αž€αŸ’αž“αž»αž„ Python) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ Cage αŸ”

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžœαžαŸ’αžαž» Cage αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αžœαžΆαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ†αž”αžΌαž„αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ (αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‡αžΆαž…αŸ’αžšαžΎαž“) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαžŠαŸ„αž™αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αŸαžαž…αŸ’αžšαž€αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžαŸ’αžαž» Cage αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž” αžœαžΆαžŽαŸ‚αž“αžΆαŸ†αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž±αŸ’αž™αž”αž‰αŸ’αžˆαž”αŸ‹αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž“αž·αž„αž”αž·αž‘αž―αž€αžŸαžΆαžšαŸ” αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αž›αž½αž“αž―αž„αž•αž„αžŠαŸ‚αžšαŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžΆαž“/αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž•αŸ’αž‘αž»αž€αž“αžΌαžœαž”αŸ†αžŽαŸ‚αž€αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžαž·αžαž·αž‡αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ RAM (buffer)αŸ”
αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžαž·αžαž·αž‡αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžαŸ’αžαž» Cage αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ (αž‘αŸ†αž αŸ†αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž‘αŸ†αž αŸ†αž”αŸ’αž›αž»αž€αž“αŸ…αž–αŸαž›αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”αž›αŸ”)αŸ”

αžœαžαŸ’αžαž» Cage αžαŸ‚αž˜αž½αž™αž’αžΆαž…αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αŸ’αžšαžΎαž“αŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ (αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αž…αŸ’αžšαž€αžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαž αž•αŸ’αž›αžΌαžœ αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡αž―αž€αžŸαžΆαžš) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαžœαžαŸ’αžαž»αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαžœαžαŸ’αžαž» Cage αž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžšαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ αž‘αŸ†αž αŸ†αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž‘αŸ†αž αŸ†αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ – αž…αŸ†αž“αž½αž“αž‘αŸ†αž–αŸαžš αž“αž·αž„αž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαžΆαž˜αžœαž“αŸ’αžαž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαžœαžαŸ’αžαž» Cage αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ 1 GB αž‚αžΊ 1000 αž‘αŸ†αž–αŸαžšαž“αŸƒ 1 MB αž“αžΈαž˜αž½αž™αŸ— ឬ 10 αž–αžΆαž“αŸ‹αž‘αŸ†αž–αŸαžšαž“αŸƒ 100 KB αž“αžΈαž˜αž½αž™αŸ— ឬ 1 αž›αžΆαž“αž‘αŸ†αž–αŸαžšαž“αŸƒ 1 KB αž“αžΈαž˜αž½αž™αŸ—αŸ” αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αŸ†αž αŸ† αž“αž·αž„αž…αŸ†αž“αž½αž“αž‘αŸ†αž–αŸαžš αž‚αžΊαž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΈαž˜αž½αž™αŸ—αŸ”

αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αžœαžαŸ’αžαž» Cage αž…αŸ’αžšαžΎαž“β€‹αž€αŸ’αž“αž»αž„β€‹αž–αŸαž›β€‹αžαŸ‚β€‹αž˜αž½αž™β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†β€‹αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡β€‹αž’αžΆαžŸαž“αŸ’αž“β€‹αž•αŸ’αžŸαŸαž„β€‹αž‚αŸ’αž“αžΆ αž’αžΆαžŸαŸ’αžšαŸαž™β€‹αž›αžΎβ€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž…αžΌαž›β€‹αž”αŸ’αžšαžΎβ€‹αž€αŸ’αž“αž»αž„β€‹αž―αž€αžŸαžΆαžšβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‚αŸ’αž“αžΆαŸ” αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž˜αž½αž™ αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ– αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αŸ†αž“αž½αž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αžŸαŸ‹αž αžΎαž™ αž‘αŸ†αž–αŸαžšαžαŸ’αž˜αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž–αŸαžšαž…αžΆαžŸαŸ‹αž‘αŸ…αžαžΆαž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž…αžΌαž›αž“αž·αžœαžαŸ’αžαž“αŸαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αž“αž½αž“αž’αž”αŸ’αž”αž”αžšαž˜αžΆαž“αŸƒαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž€αžΆαžšαž”αžŽαŸ’αžŠαž»αŸ‡αž”αžŽαŸ’αžŠαžΆαž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž–αž·αžŸαŸαžŸαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆ (αž€αŸ’αž“αž»αž„αž“αŸαž™αžŸαŸ’αžαž·αžαž·) αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αž‘αžΈαž˜αž½αž™αž‘αŸ…αž€αžΆαž“αŸ‹αž―αž€αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž“αž·αž„αž‘αžΈαž–αžΈαžšαž…αŸ†αž–αŸ„αŸ‡αž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž―αž€αžŸαžΆαžšαž“αžΈαž˜αž½αž™αŸ—αŸ”

αžαŸ’αž“αžΆαž€αŸ‹ Cage αž‚αžΆαŸ†αž‘αŸ’αžš I/O αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžŠαŸ„αž™αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ (αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž‘αžΈαžαžΆαŸ†αž„ αž“αž·αž„αž”αŸ’αžšαžœαŸ‚αž„αž“αŸƒαž’αžΆαžšαŸ "αž€αžΆαžšαž‡αŸ†αž“αž½αžŸ" αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αž€αž˜αŸ’αžšαž·αž "αžšαžΌαž”αžœαž“αŸ’αž" αž‘αžΆαž”αž•αž„αžŠαŸ‚αžš - αžαžΆαž˜αž›αŸαžαž‘αŸ†αž–αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž·αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αŸ”

αž˜αž»αžαž„αžΆαžšαžŠαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžαŸ’αžαž» Cage "hibernation" ("αž‚αŸαž„") - αž–αž½αž€αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“ "αžŠαž½αž›αžšαž›αŸ†" (αž§αž‘αžΆαž αžšαžŽαŸαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαž”αžΆαžαŸ‹αž”αž„αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž¬αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αŸ” αž―αž€αžŸαžΆαžšαž“αŸαŸ‡ (αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αž αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΎαž„αžœαž·αž‰)αŸ” αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αžšαžΆαž…αžšαžŽαŸαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αŸ…αž–αŸαž›αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžαž·αžαž·αž‡αž“αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš "αž€αŸ’αžšαŸ…αž”αžŽαŸ’αžαžΆαž‰" αž‡αžΆαž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αžŠαŸ„αž™αžŸαžΆαžšαž”αŸ†αžŽαŸ‚αž€αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž½αž…αž αžΎαž™αŸ”

αž‘αŸ’αžšαž»αž„αž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 3600 αž‡αž½αžšαž“αŸƒαž€αžΌαžŠαŸ”

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž―αž€αžŸαžΆαžš Cageserver αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αž“αž½αž“αž…αŸ’αžšαž€αžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αž αžŠαŸ‚αž›αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜ ("មេ") αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αŸ…αžŸαž›αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Cage server αžαŸ’αžšαžΌαžœαž€αžΆαžšαžαŸ‚ Python αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡ αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž―αž€αžŸαžΆαžšαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž„αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αž”αžΌαž„αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαŸ–

  1. "αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹" - αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž”αž‰αŸ’αž…αž”αŸ‹αžœαžΆαž“αŸ…αž€αžΆαžšαž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”
  2. "αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš" - αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž»αžœαžαŸ’αžαž—αžΆαžšαž€αž·αž…αŸ’αž… (αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš) αžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžš αž€αŸαžŠαžΌαž…αž‡αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž·αž‘αžœαž‚αŸ’αž‚αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž–αžΈαžšαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‘αŸ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‡αžΆαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž‚αŸ’αž˜αžΆαž“αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž› αž“αž·αž„αž•αŸ’αž‰αžΎαžŸαžΆαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‡αž½αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ’αžšαžΎαž“ αžœαžαŸ’αžαž»αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ αžŸαŸ„ αž“αž·αž„αžšαž“αŸ’αž’αŸ”
αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αž…αŸ’αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž“αžΈαž˜αž½αž™αŸ—αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž› αž“αž·αž„αž”αž‰αŸ’αž‡αžΌαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž…αŸ†αž“αž½αž“αž…αŸ’αžšαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ” αž€αžΆαžšαž‚αžΌαžŸαž•αŸ‚αž“αž‘αžΈαžšαžœαžΆαž„αž…αŸ’αžšαž€ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž’αž“αŸ’αžαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž’αž“αž’αžΆαž“αž―αž€αžŸαžΆαžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αžαž·αžαž·αž‡αž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž’αžΆαž…αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ (αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž€αžΆαžšαž…αžΆαž€αŸ‹αžŸαŸ„) αž’αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž―αž€αžŸαžΆαžšαž˜αž½αž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž“αŸ…αž–αŸαž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ "αžŠαŸ†αž”αžΌαž„" αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž / αž›αž»αž” / αž”αžΎαž€ / αž”αž·αž‘αž―αž€αžŸαžΆαžšαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš "αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš" αžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™αž™αŸ‰αžΆαž„αžαžΉαž„αžšαžΉαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αž―αž€αžŸαžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž‡αžΆαž‘αžΌαž‘αŸ… αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž’αžΆαž“/សរសេរ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš "αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš"αŸ” αž…αŸ†αž“αž½αž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžŸαŸ’αž˜αžΎαž“αžΉαž„αž…αŸ†αž“αž½αž“αž―αž€αžŸαžΆαžšαž”αžΎαž€αŸ” αž€αž·αž…αŸ’αž…αž€αžΆαžšαž’αžΆαž“/αžŸαžšαžŸαŸαžšαž–αžΈαž’αžαž·αžαž·αž‡αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž‡αžΌαž“αž‘αŸ…αž‡αž½αžšαž‘αžΌαž‘αŸ… αž αžΎαž™αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžŠαŸ†αž”αžΌαž„αž™αž€αž—αžΆαžšαž€αž·αž…αŸ’αž…αž–αžΈαž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αžœαžΆαŸ” αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž–αž·αžŸαŸαžŸαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„ RAM αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž”αž‰αŸ’αžˆαž”αŸ‹αž€αžΆαžšαž”αž˜αŸ’αžšαžΎαž–αž½αž€αž‚αŸαžαžΆαž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž¬αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž αž½αžŸαž–αŸαž›αž’αžŸαž€αž˜αŸ’αž˜αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαž”αžΆαž“αž“αžΌαžœαž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹ Cageserver αžšαž€αŸ’αžŸαžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž‘αžΌαž‘αŸ…αž˜αž½αž™αž˜αžΆαž“αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸƒαžŸαžΆαžšαž–αžΈαž’αžαž·αžαž·αž‡αž“αžŠαŸ‚αž›αž˜αžΆαž“αž—αžΆαžšαž€αž·αž…αŸ’αž…αž”αž„αŸ’αž€αžΎαž/αž”αžΎαž€/αž”αŸ’αžαžΌαžšαžˆαŸ’αž˜αŸ„αŸ‡/αž›αž»αž”αž―αž€αžŸαžΆαžšαŸ” αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž―αž€αžŸαžΆαžšαž€αžΆαžšαž„αžΆαžšαž“αžΈαž˜αž½αž™αŸ— αžŠαŸ‚αž›αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸƒαžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž—αžΆαžšαž€αž·αž…αŸ’αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž“ αž“αž·αž„αžŸαžšαžŸαŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž€αžΆαžšαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆ αž€αŸαžŠαžΌαž…αž‡αžΆαž’αžΆαžšαŸαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžŸαžšαžŸαŸαžš (αžαŸ’αž˜αžΈ) αž“αž·αž„αž’αžΆαžšαŸαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž•αŸ’αž›αžΆαž‰αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž›αžΎ (សរសេរ αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αž˜αžΈ "αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›" αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αžΆαžŸαŸ‹)) αŸ”

αž€αŸ†αžŽαžαŸ‹β€‹αž αŸαžαž»β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡β€‹αž•αŸ’αžαž›αŸ‹β€‹αž“αžΌαžœβ€‹αžŸαž˜αžαŸ’αžαž—αžΆαž–β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžŸαŸ’αžŠαžΆαžšβ€‹αž€αžΆαžšβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌβ€‹αžšβ€‹αžαŸ’αž˜αžΈβ€‹αž‘αŸ…β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž”αž˜αŸ’αžšαž»αž„β€‹αž‘αž»αž€β€‹αž“αž·αž„β€‹αžαŸ’αžšαž‘αž”αŸ‹β€‹αž˜αž€β€‹αžœαž·αž‰β€‹αž˜αžΆαžαž·αž€αžΆβ€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“β€‹αž‘αŸ…β€‹αž…αŸ†αžŽαž»αž…β€‹αž˜αž½αž™β€‹αž€αŸ’αž“αž»αž„β€‹αž’αžαžΈαžαž€αžΆαž›β€‹αŸ”

Cageserver αž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 3100 αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αžΌαž›αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžšαž–αžΈαž…αž˜αŸ’αž„αžΆαž™ Cage

αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž―αž€αžŸαžΆαžš Cageserver

αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αž”αŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αŸ–
- αž…αŸ’αžšαž€αžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαž;
- αž…αŸ†αž“αž½αž“αž…αŸ’αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αžαž·αžαž·αž‡αž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαž (αž…αžΆαž”αŸ‹αž–αžΈαž›αŸαž 1 αž¬αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž“αŸαŸ‡ αž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαž›αŸαžαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž˜αž½αž™αž“αŸ…αž‡αžΆαž”αŸ‹αž“αžΉαž„αž›αŸαžαž…αŸ’αžšαž€αžŸαŸ†αžαžΆαž“αŸ‹)αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αž“αžΆαž€αŸ‹ Cage

αžαŸ’αž“αžΆαž€αŸ‹ αž‘αŸ’αžšαž»αž„αŸ”αž‘αŸ’αžšαž»αž„( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file="" )

αžœαžαŸ’αžαž»β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž–αžΈβ€‹αžαŸ’αž“αžΆαž€αŸ‹β€‹αž“αŸαŸ‡β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜β€‹αž‡αžΆαž˜αž½αž™β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž―αž€αžŸαžΆαžš αž“αž·αž„β€‹αž˜αžΆαž“β€‹αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†β€‹αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αŸ”

αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš

  • cage_name(str) - αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžšαž”αžŸαŸ‹αžœαžαŸ’αžαž» αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž’αžαž·αžαž·αž‡αž“αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ
  • αž‘αŸ†αž αŸ†αž‘αŸ†αž–αŸαžš(int) - αž‘αŸ†αž αŸ†αž˜αž½αž™αž‘αŸ†αž–αŸαžšαž“αŸƒαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ (αž‚αž·αžαž‡αžΆαž”αŸƒ)
  • αž›αŸαž(int) - αž…αŸ†αž“αž½αž“αž‘αŸ†αž–αŸαžšαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“
  • maxstrlen(int) - αž”αŸ’αžšαžœαŸ‚αž„αž’αžαž·αž”αžšαž˜αžΆαž“αŸƒαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸƒαž€αŸ’αž“αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαžŸαŸαžš αž“αž·αž„αž’αžΆαž“
  • server_ip(αž•αŸ’αžαžΆαž…αŸ‹αž€αžΆαžš) - αžœαž…αž“αžΆαž“αž»αž€αŸ’αžšαž˜αžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αžŸαŸ„αž‚αžΊαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ (αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ) αž αžΎαž™αžαž˜αŸ’αž›αŸƒαž‚αžΊαž‡αžΆαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αŸ– β€œαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ ip: αž…αŸ’αžšαž€β€ ឬ β€œ DNSαŸ– αž…αŸ’αžšαž€β€ (αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžˆαŸ’αž˜αŸ„αŸ‡ αž“αž·αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž–αž·αžαž‚αžΊαž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αžœαžΆαž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“)
  • αžšαž„αŸ‹αž…αžΆαŸ†(int) β€” αž–αŸαž›β€‹αžœαŸαž›αžΆβ€‹αžšαž„αŸ‹αž…αžΆαŸ†β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž†αŸ’αž›αžΎαž™β€‹αžαž”β€‹αž–αžΈβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž–αŸαž›β€‹αž‘αž‘αž½αž›β€‹αž…αŸ’αžšαž€ (αž‚αž·αžβ€‹αž‡αžΆβ€‹αžœαž·αž“αžΆαž‘αžΈ)
  • αž—αŸ’αž‰αžΆαž€αŸ‹(αž”αŸŠαžΌαž›αžΈαž“) - αž‘αž„αŸ‹αž“αŸƒαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžαŸ’αžαž»αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž (αž˜αž·αž“αž–αž·αž - αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžαŸ’αžαž»αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž‡αžΆαž€αžΆαžšαž–αž·αž - αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžαŸ’αžαž»αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž–αžΈ "αžŠαž½αž›αžšαž›αŸ†" αž–αžΈαž˜αž»αž“ - αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš "hibernation" αž˜αž·αž“αž–αž·αžαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜)
  • cache_file(str) - αžˆαŸ’αž˜αŸ„αŸ‡αž―αž€αžŸαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ hibernation

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαŸ”

αž‘αŸ’αžšαž»αž„αŸ”file_create( αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ, αž•αŸ’αž›αžΌαžœ ) - αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαžαŸ’αž˜αžΈαŸ”

αž‘αŸ’αžšαž»αž„αŸ”file_rename( server, path, new_name ) - αž”αŸ’αžαžΌαžšαžˆαŸ’αž˜αŸ„αŸ‡αž―αž€αžŸαžΆαžš

αž‘αŸ’αžšαž»αž„αŸ”file_remove( αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ, αž•αŸ’αž›αžΌαžœ) - αž›αž»αž”αž―αž€αžŸαžΆαžš

αž‘αŸ’αžšαž»αž„αŸ”αž€αžΆαžšαž”αžΎαž€αž…αŸ†αž αžš( server, αž•αŸ’αž›αžΌαžœ, mod ) - αž”αžΎαž€β€‹αž―αž€αžŸαžΆαžš

αžαŸ’αžšαž‘αž”αŸ‹ fchannel αž›αŸαžαž†αžΆαž“αŸ‚αž›αŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš Mod - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαž”αŸ€αž”αž”αžΎαž€αž―αž€αžŸαžΆαžšαŸ– "wm" - αž•αŸ’αžαžΆαž…αŸ‹αž˜αž»αž (αž’αžΆαž“/សរសេរ) "rs" - αž”αžΆαž“αžαŸ‚αž’αžΆαž“ αž“αž·αž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž’αžΆαž“αžŠαŸ„αž™αž’αžαž·αžαž·αž‡αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αž "ws" - αž’αžΆαž“/សរសេរ αž“αž·αž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž’αžΆαž“αžŠαŸ„αž™ αž’αžαž·αžαž·αž‡αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αž‘αŸ’αžšαž»αž„αŸ”αž€αžΆαžšαž‡αž·αžαžŸαŸ’αž“αž·αž‘αŸ’αž’ (fchannel) - αž”αž·αž‘αž―αž€αžŸαžΆαžš

αž‘αŸ’αžšαž»αž„αŸ”αžŸαžšαžŸαŸαžš (fchannel, αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜, αž‘αž·αž“αŸ’αž“αž“αŸαž™ ) - αžŸαžšαžŸαŸαžšαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸƒαž‘αŸ…αž―αž€αžŸαžΆαžš

αž‘αŸ’αžšαž»αž„αŸ”αž’αžΆαž“ (fchannel, αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜, len_data ) - αž’αžΆαž“αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸƒαž–αžΈαž―αž€αžŸαžΆαžš

αž‘αŸ’αžšαž»αž„αŸ”put_pages ( fchannel ) - "αžšαž»αž‰" αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž†αžΆαž“αŸ‚αž›αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚αŸ” αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αž“αŸ…β€‹αž…αŸ†αžŽαž»αž…β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸ„αŸ‡β€‹αž€αŸ’αž“αž»αž„β€‹αž€αŸ’αž”αž½αž“β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž–αŸαž›β€‹αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αŸ’αžšαžΆαž€αžŠβ€‹αžαžΆβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšβ€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž†αžΆαž“αŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžšαž€αŸ’αžŸαžΆβ€‹αž‘αž»αž€β€‹αž€αŸ’αž“αž»αž„β€‹αž―αž€αžŸαžΆαžšβ€‹αž“αŸ…β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αŸαŸ”

αž‘αŸ’αžšαž»αž„αŸ”push_all () – β€œαžšαž»αž‰β€ αž–αžΈαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ Cage αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚αŸ” αž”αŸ’αžšαžΎαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹