แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ kafkalet 0.1 แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž›แžพแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Apache Kafka

Kafkalet 0.1 แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แŸ’แžšแžถแž แŸ’แžœแžทแž€แž›แžพแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Apache Kafka แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แž แžพแž™แŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž‡แžถแžฏแž€แžŸแžถแžšแž‚แŸ„แž›แž–แžธแžšแžŠแŸ‚แž›แž˜แžถแž“แžŠแŸ„แž™แžแŸ’แž›แžฝแž“แžฏแž„ แžŠแŸ‚แž›แž˜แžถแž“แž‘แŸ†แž แŸ†แž”แŸ’แžšแž แŸ‚แž› 15 MB แž แžพแž™แž˜แžทแž“แžแž˜แŸ’แžšแžผแžœแžฑแŸ’แž™แžŠแŸ†แžกแžพแž„ JVM, Docker แžฌแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแž˜แžถแžŸแž’แžถแžแžปแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‘แŸแŸ” แž€แžผแžŠแžšแž”แžŸแŸ‹แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ Go แž“แžทแž„ TypeScript แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ MITแŸ” Builds แž˜แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹ macOS (Intel แž“แžทแž„ Apple Silicon), Windows แž“แžทแž„ LinuxแŸ”

แž˜แžทแž“แžŠแžผแž…แžงแž”แž€แžšแžŽแŸแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพแž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แžŠแžผแž…แž‡แžถ Kafka UI แž“แžทแž„ AKHQ แžŠแŸ‚แž›แžแž˜แŸ’แžšแžผแžœแžฑแŸ’แž™แžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž“แŸ…แž€แŸ’แž“แžปแž„ Docker แž‘แŸ kafkalet แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž•แŸ’แž‘แŸƒแžแžปแž’แž˜แŸ’แž˜แžแžถ - แžŸแŸ’แžšแžŠแŸ€แž„แž“แžนแž„ DBeaver แžฌ DataGrip แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แŸ” แžšแž แžผแžแž˜แž€แžŠแž›แŸ‹แž–แŸแž›แž“แŸแŸ‡ แž€แž˜แŸ’แž˜แžœแžทแž’แžธ Kafka แž›แžพแž•แŸ’แž‘แŸƒแžแžปแžแŸ‚แž˜แžฝแž™แž‚แžแŸ‹แž‚แžบ Offset Explorer (แžŠแŸ‚แž›แž–แžธแž˜แžปแž“แž แŸ…แžแžถ Kafka Tool) แžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแž‡แžถ Java แž แžพแž™แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž—แžถแž–แž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž™แžผแžšแŸ” kafkalet แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แž“แŸ…แž›แžพแž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒ Wails v2 แžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‚แŸ’แž“แžถแž“แžผแžœ backend Go แž‡แžถแž˜แžฝแž™แž“แžนแž„แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแž‡แžถ React 18, TypeScript แž“แžทแž„ shadcn/ui แž‘แŸ…แž‡แžถแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‚แŸ„แž›แž–แžธแžšแžŠแžพแž˜แžแŸ‚แž˜แžฝแž™แŸ” แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™ Kafka แž”แžŽแŸ’แžŽแžถแž›แŸแž™ franz-go แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžขแž“แžปแžœแžแŸ’แžแž“แŸ…แž€แŸ’แž“แžปแž„ Go แžŸแžปแž‘แŸ’แž’แžŠแŸ„แž™แž˜แžทแž“แž–แžนแž„แž•แŸ’แžขแŸ‚แž€แž›แžพ librdkafka แžฌ CGOแŸ”

แž›แž€แŸ’แžแžŽแŸˆแžŸแŸ†แžแžถแž“แŸ‹แŸ—แŸ–

  • แž”แŸ’แžšแž–แŸแž“แŸ’แž’โ€‹แž”แŸ’แžšแžœแžแŸ’แžแžทแžšแžผแž”โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„โ€‹แž”แžšแžทแžŸแŸ’แžแžถแž“โ€‹แž…แŸ’แžšแžพแž“ (แž•แž›แžทแžแž€แž˜แŸ’แž˜ แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž› แž“แžทแž„โ€‹แž€แžถแžšโ€‹แžขแž—แžทแžœแžŒแŸ’แž)แŸ” แžขแž“แŸ’แžแžšแž€แžถแžšแžธโ€‹แž“แžธแž˜แžฝแž™แŸ—โ€‹แž€แŸ’แž“แžปแž„โ€‹แž”แŸ’แžšแžœแžแŸ’แžแžทแžšแžผแž”โ€‹แžขแžถแž…โ€‹แž˜แžถแž“โ€‹แž‚แžŽแž“แžธโ€‹แžŠแŸ‚แž›โ€‹แž˜แžถแž“โ€‹แžˆแŸ’แž˜แŸ„แŸ‡โ€‹แž…แŸ’แžšแžพแž“ แžŠแŸ‚แž›โ€‹แž˜แžถแž“โ€‹แžŸแž˜แžแŸ’แžแž—แžถแž–โ€‹แž€แŸ’แž“แžปแž„โ€‹แž€แžถแžšโ€‹แž”แŸ’แžแžผแžšโ€‹แžšแžœแžถแž„โ€‹แž–แžฝแž€แžœแžถโ€‹แž”แžถแž“โ€‹แž™แŸ‰แžถแž„โ€‹แžšแž แŸแžŸแŸ” แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹ แž“แžทแž„โ€‹แžแžผแžแžนแž“โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แžšแž€แŸ’แžŸแžถแž‘แžปแž€โ€‹แž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„โ€‹แž“แŸ…โ€‹แž€แŸ’แž“แžปแž„โ€‹แž แžถแž„โ€‹แžŸแž˜แŸ’แž„แžถแžแŸ‹โ€‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’โ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš (macOS Keychain, Windows Credential Manager แžฌ libsecret แž“แŸ…โ€‹แž›แžพ Linux) แž แžพแž™โ€‹แž˜แžทแž“โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แžŸแžšแžŸแŸแžšโ€‹แž‘แŸ…โ€‹แžฏแž€แžŸแžถแžšโ€‹แž€แŸ†แžŽแžแŸ‹โ€‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’โ€‹แž‘แŸแŸ”
  • แžšแž”แŸ€แž”แžขแŸ’แž“แž€แžŸแž„แŸ’แž€แŸแžแž€แžถแžšแžŽแŸแžขแžถแž“แžŸแžถแžšแž–แžธแž”แŸ’แžšแž’แžถแž“แž”แž‘แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž€แŸ’แžšแžปแž˜แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžŠแŸ„แž™แž˜แžทแž“แž’แŸ’แžœแžพแž€แžถแžšแž”แŸ’แžแŸแž‡แŸ’แž‰แžถแž…แžทแžแŸ’แžแž›แžพแžขแžปแž แŸ’แžœแžŸแžทแž แž“แžทแž„แžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž•แž›แž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แž“แŸƒแž…แž„แŸ’แž€แŸ„แž˜แžŽแžถแž˜แžฝแž™แžกแžพแž™แŸ” แžšแž”แŸ€แž”แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž˜แžฝแž™แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž€แŸ’แžšแžปแž˜ แž“แžทแž„แž’แŸ’แžœแžพแž€แžถแžšแž”แŸ’แžแŸแž‡แŸ’แž‰แžถแž…แžทแžแŸ’แžแž›แžพแžขแžปแž แŸ’แžœแžŸแžทแžแžŠแŸ„แž™แžŠแŸƒแŸ”
  • แžŸแŸ’แžœแŸ‚แž„แžšแž€แž€แžถแžšแžšแžปแž€แžšแž€แžแŸ’แžšแžถแž–แŸแž›แžœแŸแž›แžถโ€”แžšแžปแž€แžšแž€แžŸแžถแžšแžแžถแž˜แž€แžถแž›แž”แžšแžทแž…แŸ’แž†แŸแž‘ แž“แžทแž„แž–แŸแž›แžœแŸแž›แžถแžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž‚แžŽแž“แžถแžขแžปแž แŸ’แžœแžŸแžทแžแžŠแŸ„แž™แžŠแŸƒแŸ” แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแŸ– SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (แžแžผแžแžนแž“แž‹แžทแžแžทแžœแž“แŸ’แž แž“แžทแž„แž›แŸ†แž แžผแžšแž–แŸแžแŸŒแž˜แžถแž“แžŸแž˜แŸ’แž„แžถแžแŸ‹แžขแžแžทแžแžทแž‡แž“), TLS แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžš แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž”แž˜แŸ’แžšแžพ, mTLS (แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžšแž‘แŸ…แžœแžทแž‰แž‘แŸ…แž˜แž€)แŸ”
  • แž€แžถแžšแž˜แžพแž›แžŸแžถแžšแžŸแŸ’แž‘แŸ’แžšแžธแž˜แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžแŸ’แžšแž„ regex แž–แŸแž›แžœแŸแž›แžถแž‡แžถแž€แŸ‹แžŸแŸ’แžแŸ‚แž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ„ แž“แžทแž„แžแž˜แŸ’แž›แŸƒแŸ” แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แž”แŸ’แžšแž’แžถแž“แž”แž‘แž…แŸ’แžšแžพแž“แž€แŸ’แž“แžปแž„แž–แŸแž›แžŠแŸ†แžŽแžถแž›แž‚แŸ’แž“แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž•แŸ’แž‘แžถแŸ†แž„แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžถแŸ†แž‘แŸ’แžšแŸ” แž€แžถแžšแž’แŸ’แžœแžพแž“แžทแž˜แŸ’แž˜แžทแžแž”แž‰แŸ’แž‡แžธแžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž”แž„แŸ’แž แžถแž‰แžŸแžถแžšแž‡แžถแž„ 50,000 แžŠแŸ„แž™แž˜แžทแž“แž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แžŠแž›แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ”
  • แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แŸ’แžšแž’แžถแž“แž”แž‘แŸ– แž€แžถแžšแž”แž„แŸ’แž€แžพแž แž€แžถแžšแž›แžปแž” แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แž€แžถแžšแž˜แžพแž›แž—แžถแž‚แžแžถแžŸ แžขแŸ’แž“แž€แžŠแžนแž€แž“แžถแŸ† แž“แžทแž„แžŸแŸ†แžŽแžปแŸ†แž“แŸƒแž…แŸ’แž”แžถแž”แŸ‹แž…แž˜แŸ’แž›แž„แžŠแŸ‚แž›แž”แžถแž“แž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜ (ISR)แŸ”  แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ kafkalet 0.1 แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž›แžพแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Apache Kafka
  • แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แŸ’แžšแžปแž˜แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แŸ– แž€แžถแžšแž˜แžพแž›แž™แžบแžแž™แŸ‰แžถแžœแžแžถแž˜แž€แžถแžšแž”แŸ‚แž„แž…แŸ‚แž€ แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžขแžปแž แŸ’แžœแžŸแžทแžแžกแžพแž„แžœแžทแž‰แž‘แŸ…แžŠแŸ†แž”แžผแž„แž”แŸ†แž•แžปแž แžแŸ’แž˜แžธแž”แŸ†แž•แžปแž แžฌแžแŸ’แžšแžถแž–แŸแž›แžœแŸแž›แžถแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹ แž€แžถแžšแž˜แžพแž›แžŸแž˜แžถแž‡แžทแž€แž€แŸ’แžšแžปแž˜ (แž›แŸแžแžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžขแžแžทแžแžทแž‡แž“ แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž”แŸ’แžšแž’แžถแž“แž”แž‘แžŠแŸ‚แž›แž”แžถแž“แž€แŸ†แžŽแžแŸ‹) แž€แžถแžšแž›แžปแž”แž€แŸ’แžšแžปแž˜แŸ”
  • แž€แŸ†แž–แžปแž„แž•แŸ’แž‰แžพแžŸแžถแžšแžŠแŸ‚แž›แž˜แžถแž“แž•แŸ’แž“แŸ‚แž€แžŸแŸ„ แžแž˜แŸ’แž›แŸƒ แž”แž‹แž˜แž€แžแžถ แž“แžทแž„แž‚แŸ„แž›แžŠแŸ…แžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แŸ”  แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ kafkalet 0.1 แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž›แžพแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Apache Kafka
  • แž€แžถแžšแžšแŸ€แž”แž…แŸ†แž”แŸ’แžšแž’แžถแž“แž”แž‘แŸ– แžแŸ’แž‘แžถแžŸแŸ‹แž”แŸ’แžšแž’แžถแž“แž”แž‘แžŠแŸ‚แž›แž”แŸ’แžšแžพแž‰แžนแž€แž‰แžถแž”แŸ‹ แžŠแžถแž€แŸ‹แž‡แžถแž€แŸ’แžšแžปแž˜แž‘แŸ…แž€แŸ’แž“แžปแž„แžแžแžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แž˜แžถแž“แžˆแŸ’แž˜แŸ„แŸ‡ แžŸแŸ’แžœแŸ‚แž„แžšแž€แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž“แŸ’แžŸแŸ„แž˜แž’แž˜แŸ’แž˜แžแžถ แž“แžทแž„แž€แžถแžšแžแŸ’แžšแž„แžแžถแž˜แž…แŸ†แž“แžฝแž“แž•แŸ’แž“แŸ‚แž€แžขแž”แŸ’แž”แž”แžšแž˜แžถแŸ”
  • แž“แžถแŸ†แž…แŸแž‰โ€‹แžŸแžแžทแž”แžŽแŸ’แžŠแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“โ€‹แžŸแžถแžšโ€‹แž‡แžถแž‘แž˜แŸ’แžšแž„แŸ‹ JSON แžฌ CSVแŸ”
  • แž€แžถแžšแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‡แžถแž˜แžฝแž™ Confluent Schema Registry แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŒแžทแž€แžผแžŠแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แŸƒแžŸแžถแžš Avro แŸ”
  • แž”แŸ’แžšแž–แŸแž“แŸ’แž’โ€‹แž“แŸƒโ€‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แž‡แŸ†แž“แžฝแž™ JavaScript แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แžŒแžทแž€แžผแžŠโ€‹แžŸแžถแžšโ€‹แžแžถแž˜โ€‹แž”แŸ†แžŽแž„ (Protobuf, MessagePack แž“แžทแž„โ€‹แž‘แž˜แŸ’แžšแž„แŸ‹โ€‹แž•แŸ’แžŸแŸแž„แŸ—โ€‹แž‘แŸ€แž)แŸ”
  • แž“แžถแŸ†แž…แžผแž› แž“แžทแž„แž“แžถแŸ†แž…แŸแž‰แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž‡แžถแž‘แž˜แŸ’แžšแž„แŸ‹ JSON แžšแžฝแž˜แž‘แžถแŸ†แž„แž”แŸ’แžšแžœแžแŸ’แžแžทแžšแžผแž” แž€แŸ’แžšแžปแž˜แž”แŸ’แžšแž’แžถแž“แž”แž‘ แž“แžทแž„แž”แŸ’แžšแž’แžถแž“แž”แž‘แžŠแŸ‚แž›แž”แžถแž“แžแŸ’แž‘แžถแžŸแŸ‹แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹