All Projects → chendo → Airchat

chendo / Airchat

AirChat lets you chat to nearby users by abusing the AirDrop interface on OS X.

Programming Languages

ruby
36898 projects - #4 most used programming language
hack
652 projects

Labels

Projects that are alternatives of or similar to Airchat

Lookerbot
Lookerbot lets you access all your Looker data from Slack! Super fun!
Stars: ✭ 138 (-11.54%)
Mutual labels:  chat
Socket Chat Client
📲 Ionic Socket.IO chat client
Stars: ✭ 146 (-6.41%)
Mutual labels:  chat
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+1168.59%)
Mutual labels:  chat
Hyperf Chat
Hyperf Chat
Stars: ✭ 139 (-10.9%)
Mutual labels:  chat
Xabber Android
Open-source XMPP client for Android
Stars: ✭ 1,773 (+1036.54%)
Mutual labels:  chat
Mojo Webqq
【重要通知:WebQQ将在2019年1月1日停止服务,此项目目前已停止维护,感谢大家四年来的一路陪伴】使用Perl语言(不会没关系)编写的smartqq/webqq客户端框架(非GUI),可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
Stars: ✭ 1,755 (+1025%)
Mutual labels:  chat
Goch
Self hosted live chat server written in Go
Stars: ✭ 133 (-14.74%)
Mutual labels:  chat
Igdm
Desktop application for Instagram DMs
Stars: ✭ 1,880 (+1105.13%)
Mutual labels:  chat
Quick Chat
Real time chat app written in Swift 5 using Firebase
Stars: ✭ 1,773 (+1036.54%)
Mutual labels:  chat
Mmtexturechat
AsyncDisplayKit(Texture) Smooth Scroll Chat Simulation for Whatsapp and iMessage
Stars: ✭ 149 (-4.49%)
Mutual labels:  chat
Smartim4eclipse
Eclipse上的SmartIM插件,防Boss利器,让你可以在eclipse中使用QQ/微信进行聊天
Stars: ✭ 139 (-10.9%)
Mutual labels:  chat
Hangups
the first third-party instant messaging client for Google Hangouts
Stars: ✭ 1,739 (+1014.74%)
Mutual labels:  chat
Slack Clone React Native
Build a slack clone using react-native, Stream and react-navigation
Stars: ✭ 147 (-5.77%)
Mutual labels:  chat
Hiya Hiya Hiya
Whatsapp Clone base on Firebase Cloud Messaging
Stars: ✭ 139 (-10.9%)
Mutual labels:  chat
Gappein Chat Sdk
A plug and play modular toolkit for integrating the Chat feature on top of Firebase!
Stars: ✭ 154 (-1.28%)
Mutual labels:  chat
Whatsapp Clone Android
Tutorial which teaches you how to build a whatsapp chat clone on android using Kotlin, viewmodels, navigation component and Stream
Stars: ✭ 137 (-12.18%)
Mutual labels:  chat
Adium
Official mirror of hg.adium.im
Stars: ✭ 146 (-6.41%)
Mutual labels:  chat
Maelstrom
High performance Matrix Home Server in rust.
Stars: ✭ 156 (+0%)
Mutual labels:  chat
Sum
SUM - Secure Ultimate Messenger
Stars: ✭ 154 (-1.28%)
Mutual labels:  chat
Chat Realtime
Public & Private message. MySQL & Firebase.
Stars: ✭ 147 (-5.77%)
Mutual labels:  chat

AirChat

AirChat is a zero-dependency* P2P CLI chat tool that (ab)uses the AirDrop interface to allow chatting across WiFi networks (or no WiFi network).

A RailsCamp AU 20 project.

Screenshot

Features

  • Chat to other AirChat users in proximity without being on the same network
  • Self-contained - no gems, nothing else to download/install
  • Automatically keeps AirDrop active
  • Commands: /nick, /who, /me, /quit
  • User colours tied to their IPv6 address

Requirements

  • OS X with system Ruby 2+ with working AirDrop
  • Ruby 2.0 or higher (comes with OS X)
  • tcpdump (comes with OS X)

Usage

# Get it
curl -L https://github.com/chendo/airchat/raw/master/airchat.rb > airchat.rb && chmod +x airchat.rb
# or get someone to AirDrop it to you, etc.

# AirChat requires raw access to the /dev/bpf* interface.
# Run using sudo
sudo ./airchat.rb
# OR
# Give permission to /dev/bpf*
sudo chgrp staff /dev/bpf* && sudo chmod g+rw /dev/bpf*  # These permissions will reset on reboot
./airchat.rb

How does it work?

AirChat uses the awdl0 interface to talk to other machines with AirDrop active. However, OS X restricts binding to this interface, and non-AirDrop network traffic is rejected with ICMP Port Unreachable. AirChat gets around this by using tcpdump to receive UDP data, as OS X doesn't stop you from sending packets through that interface.

AirChat broadcasts JSON-encoded messages in UDP to ff02::fb on port 1337.

Caveats/TODO

  • Messages are transmitted in plain text.
  • No direct messaging
  • One channel only (you can specify a different port by modifying the source)
  • Message delivery is not guaranteed
  • No message repeater functionality

License

MIT.

ANSI RGB magic sauce from the paint gem.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].