Git Product home page Git Product logo

erlim's Introduction

An IM server written in erlang

Dependency

Install

make

# in erl console
application:start(erlim).

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

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

Todo

  • erlang async receive
  • one-to-one chat
  • group chat
  • use toml to write config file
  • use mnesia for session store
  • toml library of erlang
  • handle bug and error
  • chat must be friends
  • group chat must in this room
  • remove token 不是无状态的
  • add ACK(消息回执 模仿三次握手)
  • multi device
  • timeout
  • keep session(避免移动端重连风暴)
  • yrl and xrl(语法分析/词法分析) write json parse in erlang(yecc and leex)
  • implement pubsub with erlang(gen_event)
  • implement cluster mode

erlim's People

Contributors

flowerwrong avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.