Thanks to visit codestin.com
Credit goes to github.com

Skip to content

FlowerWrong/erlim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An IM server written in erlang

Dependency

Install

rebar xref

make

Usage

make release
cp erlim.example.toml /etc/erlim/erlim.toml

./rel/erlim/bin/erlim start
./rel/erlim/bin/erlim console
./rel/erlim/bin/erlim attach
./rel/erlim/bin/erlim stop

./rel/erlim/bin/erlim_ctl status
./rel/erlim/bin/erlim_ctl vm all | memory | process
./rel/erlim/bin/erlim_ctl cluster
./rel/erlim/bin/erlim_ctl sessions

Design

  • Just for chat(both one2one and group chat), no api for add_friend/del_friend/create_room/upload_file/del_room etc...
  • Use toml for config
  • Use json for data exchange

structure of erlim

Features

  • single chat: chat must be friends
  • group chat: whatsapp-like
  • chat history both single chat and group chat
  • websocket support
  • ONECHAT protocol(Design by FlowerWrong) support

Cluster

VOIP

webRTC

Todo

  • erlang async receive
  • one-to-one chat must be friends
  • group chat
  • use toml to write config file
  • use mnesia for session store
  • remove token
  • add ACK
  • multi device support
  • add mnesia cluster support
  • add websocket support
  • implement a module like pg2 with mnesia
  • add video chat support(ICE STUN: RFC3489 TURN: RFC5766 SIP WebRTC SDP)
  • implement cluster mode with a scheduler in erlang or nodejs or ruby on rails
  • block user, add friends, room onechat api
  • add tls support
  • add edoc
  • http api module(friends list, blocks list, room info...)
  • timeout
  • add max connection number test
  • add web admin support
  • multi video chat without p2p, with rtmp and hls
  • keep session
  • implement pubsub with erlang(gen_event)
  • yrl and xrl write json parse in erlang(yecc and leex)

About

An IM server written in erlang

Resources

Stars

Watchers

Forks

Packages

No packages published