| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586 |
- .. _changes:
- =======
- Changes
- =======
- .. _release_2.0:
- -------------------------------------
- Version 2.0-beta1 (West of West Lake)
- -------------------------------------
- *Release Date: 2016-08-30*
- *Release Name: West of West Lake*
- EMQ - Shortened Project Name
- ----------------------------
- Adopt a shortened project name: EMQ(Erlang/Enterprise/Elastic MQTT Broker),E means Erlang/OTP, Enterprise and Elastic.
- Improve the Release Management
- ------------------------------
- In order to iterate the project fast, we will adopt a new release management strategy since 2.0. There will be two or three 'Preview Release' named beta1, beta2 or beta3, and then one or two 'Release Candidate' named rc1, rc2 before a Major version is production ready.
- Seperate Rel from Application
- -----------------------------
- We split the emqttd 1.x project into two projects since 2.0-beta1 release to resolve the plugins' dependency issue.
- A new project named `emqttd-relx`_ is created and responsible for buiding the emqttd application and the plugins::
- git clone https://github.com/emqtt/emqttd-relx.git
- cd emqttd-relx && make
- cd _rel/emqttd && ./bin/emqttd console
- erlang.mk and relx
- ------------------
- The rebar which is used in 1.x release is replaced by `erlang.mk`_ and `relx`_ tools since 2.0-beta1 release.
- You can check the 'Makefile' and 'relx.config' in the release project of the borker: `emqttd-relx`_ .
- Improve Git Branches Management
- -------------------------------
- +------------+-------------------------------------------+
- | stable | 1.x Stable Branch |
- +------------+-------------------------------------------+
- | master | 2.x Master Branch |
- +------------+-------------------------------------------+
- | emq10 | 1.x Developement Branch |
- +------------+-------------------------------------------+
- | emq20 | 2.x Development Branch |
- +------------+-------------------------------------------+
- | emq30 | 3.x Development Branch |
- +------------+-------------------------------------------+
- | issue#{id} | BugFix Branch |
- +------------+-------------------------------------------+
- New Config Syntax
- -----------------
- Since 2.0-beta1 release the configuration file of the broker and plugins adopt a new syntax like rebar.config and relx.config:
- etc/emqttd.conf for example::
- %% Max ClientId Length Allowed.
- {mqtt_max_clientid_len, 512}.
- %% Max Packet Size Allowed, 64K by default.
- {mqtt_max_packet_size, 65536}.
- %% Client Idle Timeout.
- {mqtt_client_idle_timeout, 30}. % Second
- MQTT-SN Protocol Plugin
- -----------------------
- The MQTT-SN Protocol Plugin `emqttd_sn`_ has been ready in 2.0-beta1 release. The default UDP port of MQTT-SN is 1884.
- Load the plugin::
- ./bin/emqttd_ctl plugins load emqttd_sn
- Improve The PubSub Design
- -------------------------
- .. image:: _static/images/publish.png
- Improve The Plugin Management
- -----------------------------
- The plugin of EMQ 2.0 broker is a normal erlang application which depends on and extends 'emqttd'. You can create a standalone plugin application project, and add it to `emqttd-relx`_ Makefile as a DEP.
- All the plugins' config files will be copied to emqttd/etc/plugins/ folder when making emqttd brinary packages in `emqttd-relx`_ project::
- ▾ emqttd/
- ▾ etc/
- ▸ modules/
- ▾ plugins/
- emqtt_coap.conf
- emqttd.conf
- emqttd_auth_http.conf
- emqttd_auth_mongo.conf
- emqttd_auth_mysql.conf
- emqttd_auth_pgsql.conf
- emqttd_auth_redis.conf
- emqttd_coap.conf
- emqttd_dashboard.conf
- emqttd_plugin_template.conf
- emqttd_recon.conf
- emqttd_reloader.conf
- emqttd_sn.conf
- emqttd_stomp.conf
- EMQ 2.0 Documentation
- ---------------------
- http://emqtt.io/docs/v2/index.html
- .. _release_1.1.3:
- -------------
- Version 1.1.3
- -------------
- *Release Date: 2016-08-19*
- Support './bin/emqttd_ctl users list' CLI (#621)
- Cannot publish payloads with a size of the order 64K using WebSockets (#643)
- Optimize the procedures that retrieve the Broker version and Borker description in the tick timer (PR#627)
- Fix SSL certfile, keyfile config (#651)
- -------------
- Version 1.1.2
- -------------
- .. _release_1.1.2:
- -------------
- Version 1.1.2
- -------------
- *Release Date: 2016-06-30*
- Upgrade mysql-otp driver to 1.2.0 (#564, #523, #586, #596)
- Fix WebSocket Client Leak (PR #612)
- java.io.EOFException using paho java client (#551)
- Send message from paho java client to javascript client (#552)
- Compatible with the Qos0 PUBREL packet (#575)
- Empty clientId with non-clean session accepted (#599)
- Update docs to fix typos (#601, #607)
- .. _release_1.1.1:
- -------------
- Version 1.1.1
- -------------
- *Release Date: 2016-06-04*
- Compatible with the Qos0 PUBREL packet (#575)
- phpMqtt Client Compatibility (#572)
- java.io.EOFException using paho java client (#551)
- .. _release_1.1:
- -----------
- Version 1.1
- -----------
- *Release Date: 2016-06-01*
- Highlights
- ----------
- Upgrade eSockd library to 4.0 and Support IPv6
- Support to listen on specific IP Address::
- {mqtt, {"192.168.1.20", 1883}, [
- ...
- ]},
- Add MongoDB, HTTP Authentication/ACL Plugins
- Upgrade MySQL, PostgreSQL, Redis Plugins to support superuser authentication and avoid SQL Injection
- Enhancements
- ------------
- Allow human-friendly IP addresses (PR#395)
- File operation error: emfile (#445)
- emqttd_plugin_mongo not found in emqttd (#489)
- emqttd_plugin_mongo Error While Loading in emqttd (#505)
- Feature request: HTTP Authentication (#541)
- Compatible with the Qos0 PUBREL packet (#575)
- Bugfix
- ------
- Bugfix: function_clause exception occurs when registering a duplicated authentication module (#542)
- Bugfix: ./emqttd_top msg_q result: {"init terminating in do_boot",{undef,[{etop,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}} (#557)
- Tests
- -----
- 111 common test cases.
- Dashboard Plugin
- ----------------
- WebSocket Page: Support 'Clean Session', Qos, Retained parameters (emqttd_dashboard#52)
- Upgrade eSockd library to 4.0, Show OTP Release on Overview Page (emqttd_dashboard#61)
- Changing dashboard credentials for username authentication (emqttd_dashboard#56)
- Add './bin/emqttd_ctl admins' CLI,support to add/delete admins
- HTTP Auth Plugin
- ----------------
- Authentication/ACL by HTTP API: https://github.com/emqtt/emqttd_auth_http
- MongoDB Plugin
- --------------
- Upgrade Erlang MongoDB driver to v1.0.0
- Support superuser authentication
- Support ACL (emqttd_plugin_mongo#3)
- MySQL Plugin
- ------------
- Support superuser authentication
- Use parameterized query to avoid SQL Injection
- Postgre Plugin
- --------------
- Support superuser authentication
- Use parameterized query to avoid SQL Injection
- Redis Plugin
- ------------
- Support superuser authentication
- Support ClientId authentication by '%c' variable
- Reloader Plugin
- ---------------
- Reload modified modules during development automatically.
- .. _release_1.0.3:
- -------------
- Version 1.0.3
- -------------
- *Release Date: 2016-05-23*
- eSockd 3.2
- MochiWeb 4.0.1
- .. _release_1.0.2:
- -------------
- Version 1.0.2
- -------------
- *Release Date: 2016-05-04*
- Issue#534 - './bin/emqttd_ctl vm' - add 'port/count', 'port/limit' statistics
- Issue#535 - emqttd_client should be terminated properly even if exception happened when sending data
- PR#519 - The erlang '-name' requires the fully qualified host name
- emqttd_reloader plugin - help reload modified modules during development.
- .. _release_l.0.1:
- -------------
- Version 1.0.1
- -------------
- *Release Date: 2016-04-16*
- PR#515 - Fix '$queue' pubsub, add 'pubsub_queue' test and update docs
- .. _release_1.0:
- ------------------------------------
- Version 1.0 (The Seven Mile Journey)
- ------------------------------------
- *Release Date: 2016-04-13*
- *Release Name: The Seven Mile Journey*
- We finally released Version 1.0 (The Seven Mile Journey) with full documentation after two years' development and more than fifty iterations.
- The emqttd 1.0 implements a fully-featured, scalable, distributed and extensible open-source MQTT broker for IoT, M2M and Mobile applications:
- 1. Full MQTT V3.1/3.1.1 Protocol Specifications Support
- 2. Massively scalable - Scaling to 1 million connections on a single server
- 3. Distributed - Route MQTT Messages among clustered or bridged broker nodes
- 4. Extensible - LDAP, MySQL, PostgreSQL, Redis Authentication/ACL Plugins
- Bugfix and Enhancements
- -----------------------
- Possible race condition using emqttd_cm (#486)
- Improve the design of retained message expiration (#503)
- Do not expire the retained messages from $SYS/# topics (#500)
- Documentation
- --------------
- http://emqtt.io/docs
- http://docs.emqtt.com/
- Thanks
- ------
- Thank Ericsson for the Great Erlang/OTP Platform (http://erlang.org/)!
- Contributors on GitHub: @callbay @lsxredrain @hejin1026 @desoulter @turtleDeng @Hades32 @huangdan @phanimahesh @dvliman @Prots @joaohf
- Partners: EACG (http://eacg.de/)
- Favorite Band: The Seven Mile Journey (http://www.thesevenmilejourney.dk/)
- .. _release_0.17.1:
- -------------------
- Version 0.17.1-beta
- -------------------
- *Release Date: 2016-03-22*
- Enhancements
- ------------
- Time unit of session 'expired_after' changed to minute. (#479)
- Dashboard
- ---------
- Code Review and improve the design of Dashboard.
- .. _release_0.17.0:
- -------------------
- Version 0.17.0-beta
- -------------------
- *Release Date: 2016-03-15*
- Highlights
- ----------
- Installation and Configuration Guide released on http://docs.emqtt.com
- Improve and Consolidate the design of Hook, Server, PubSub and Router
- Upgrade the [Web Dashboard](https://github.com/emqtt/emqttd_dashboard) to support pagination
- Bridge emqttd broker to another emqttd broker & emqttd to mosquitto bridge (#438)
- Enhancements
- ------------
- emqttd_ctl: better error message (#450)
- ./bin/emqttd_ctl: add 'routes' command::
- routes list # List all routes
- routes show <Topic> # Show a route
- Add 'backend_subscription' table and support static subscriptions (emqttd_backend)
- Add 'retained_message' table and refactor emqttd_retainer module (emqttd_backend)
- A New Hook and Callback Design (emqttd_hook)
- Add PubSub, Hooks APIs to emqttd module (emqttd)
- Move start_listeners/0, stop_listeners/0 APIs to emqttd_app module (emqttd_app)
- Tests
- -----
- Add 100+ common test cases.
- Plugins
- -------
- Upgrade Dashboard, Redis, Stomp and Template Plugins
- .. _release_0.16.0:
- -------------------
- Version 0.16.0-beta
- -------------------
- *Release Date: 2016-02-16*
- Highlights
- ----------
- Licensed under the Apache License, Version 2.0 Now.
- Improve the design of cluster, support to join or leave the cluster (#449)::
- $ ./bin/emqttd_ctl cluster
- cluster join <Node> #Join the cluster
- cluster leave #Leave the cluster
- cluster remove <Node> #Remove the node from cluster
- cluster status #Cluster status
- Improve the design of Trie and Route, only the wildcard topics stored in Trie.
- Common Test to replace EUnit.
- Enhancements
- ------------
- mqtt_message record: add 'sender' field (#440)
- refactor the emqttd, emqttd_time, emqttd_opts, emqttd_node modules.
- Bugfix
- ------
- noproc error when call to gen_server2:call(false, {add_route,Topic,<0.685.0>}, infinity) (#446)
- Plugins
- -------
- Changed the license of all plugins.
- .. _release_0.15.0:
- -------------------
- Version 0.15.0-beta
- -------------------
- *Release Date: 2016-01-31*
- Highlights
- ----------
- Optimize for Push Application, 500K+ Subscribers to a Topic.
- Optimization for Route ETS insertion (#427)
- Priority Message Queue for Persistent Session (#432)
- Add Redis, MongoDB Plugins (#417)
- Enhancements
- ------------
- Username/Password Authentication: Support to configure default users (#428)
- Improve CLI Commands: pubsub, bridges, trace (#429)
- emqttd_mod_subscription: fix client_connected/3
- emqttd_auth_mod: add passwd_hash/2 function
- priority_queue: add plen/2, out/2 functions
- Bugfix
- ------
- Fix dequeue/1 of emqttd_bridge...
- Add emqttd:seed_now/0 function
- Plugins
- -------
- emqttd_plubin_mysql: Changed mysql driver to mysql-otp
- emqttd_plugin_pgsql: Integrate with ecpool
- emqttd_plugin_redis: First release
- emqttd_plugin_mongo: First release
- .. _release_0.14.1:
- -------------------
- Version 0.14.1-beta
- -------------------
- *Release Date: 2015-12-28*
- Bugfix: emqttd_ws_client.erl: Unexpected Info: {'EXIT',<0.27792.18>,{shutdown,destroy}} (#413)
- Improve: fix spec errors found by dialyzer
- .. _release_0.14.0:
- -------------------
- Version 0.14.0-beta
- -------------------
- *Release Date: 2015-12-18*
- Highlights
- ----------
- Scaling to 1.3 Million Concurrent MQTT Connections on a 12 Core, 32G CentOS server.
- New PubSub, Router Design (#402). Prepare for scaling to 10 millions on one cluster.
- Enhancements
- ------------
- Improve the gproc_pool usage with a general emqttd_pool_sup
- Improve the design of emqttd_pubsub, add a new emqttd_router module
- Improve the design of the whole supervisor tree
- Route aging mechanism to remove the topics that have no subscriptions
- Improve the dashboard, mysql, pgsql, stomp, sockjs plugins
- Add 'topics', 'subscriptions' admin commands
- Avoid using mnesia table index and mnesia:index_read API to lower CPU usage
- Subscribe timeout exception (#366)
- Long Delay on Multiple Topic Subscription (#365)
- Subscriptions persistence (#344)
- emqttd_ctl: 'subscriptions' command to force clients to subscribe some topics (#361)
- Bugfix
- ------
- emqttd_sm: spec of lookup_session/1 is not right BUG (#411)
- Observer application should be removed from reltool.config for 'wx' app is not available (#410)
- Benchmark
- ---------
- 1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS Server, consume about 15G Memory and 200% CPU.
- .. _release_0.13.1:
- -------------------
- Version 0.13.1-beta
- -------------------
- *Release Date: 2015-11-28*
- Bugfix: Plugin pathes error under windows (#387)
- Improve: Too many error logs "[error] Session ..... Unexpected EXIT: client_pid=<0.14137.35>, exit_pid=<0.30829.22>, reason=nop..." (#383)
- Improve: Define QOS0/1/2, Pooler Error (PR#382)
- Improve: High CPU load when 400K unstable mobile connections (#377)
- BugFix: emqttd_plugin_pgsql - error using same query with latest update plugin (pgsql#5)
- .. _release_0.13.0:
- -------------------
- Version 0.13.0-beta
- -------------------
- *Release Date: 2015-11-08*
- Highlights
- ----------
- Rate Limiting based on [Token Bucket](https://en.wikipedia.org/wiki/Token_bucket) and [Leaky Bucket](https://en.wikipedia.org/wiki/Leaky_bucket#The_Leaky_Bucket_Algorithm_as_a_Meter) Algorithm
- Upgrade eSockd and MochiWeb libraries to support Parameterized Connection Module
- Improve emqttd_client to support fully asynchronous socket networking
- Enhancements
- ------------
- Protocol Compliant - Session Present Flag (#163)
- Compilation fails if repo is cloned with a different name (#348)
- emqttd_client: replace gen_tcp:send with port_command (#358)
- TCP sndbuf, recbuf, buffer tuning (#359)
- emqttd_client.erl to handle 'inet_async', 'inet_reply' properly (#360)
- Refator the [client/session management design](https://github.com/emqtt/emqttd/blob/master/doc/design/ClientSession.md)
- Bugfix
- ------
- Cannot kick transient client out when clientId collision (#357)
- Fix the order of emqttd_app:start_server/1 (#367)
- emqttd_session:subscribe/2 will crash (#374)
- Benchmark
- ---------
- [benchmark for 0.13.0 release](https://github.com/emqtt/emqttd/wiki/benchmark-for-0.13.0-release)
- 3.1G memory and 50+ CPU/core:
- .. code-block:: bash
- Connections: 250K
- Subscribers: 250K
- Topics: 50K
- Qos1 Messages/Sec In: 4K
- Qos1 Messages/Sec Out: 20K
- Traffic In(bps): 12M+
- Traffic Out(bps): 56M+
- .. _release_0.12.3:
- -------------------
- Version 0.12.3-beta
- -------------------
- *Release Date: 2015-10-22*
- Bugfix: emqttd_sysmon crasher for 'undefined' process_info (#350)
- Bugfix: emqttd_client: catch parser exception (#353)
- .. _release_0.12.2:
- -------------------
- Version 0.12.2-beta
- -------------------
- *Release Date: 2015-10-16*
- Bugfix: Retained messages should not be expired if 'broker.retained.expired_after = 0' (#346)
- .. _release_0.12.1:
- -------------------
- Version 0.12.1-beta
- -------------------
- *Release Date: 2015-10-15*
- Highlight: Release for Bugfix and Code Refactor.
- Feature: Retained message expiration (#182)
- Improve: '$SYS/#' publish will not match '#' or '+/#' (#68)
- Improve: Add more metrics and ignore '$SYS/#' publish (#266)
- Improve: emqttd_sm should be optimized for clustered nodes may be crashed (#282)
- Improve: Refactor emqttd_sysmon and suppress 'monitor' messages (#328)
- Task: benchmark for 0.12.0 release (#225)
- Benchmark: About 900K concurrent connections established on a 20Core, 32G CentOS server.
- .. _release_0.12.0:
- -------------------
- Version 0.12.0-beta
- -------------------
- *Release Date: 2015-10-08*
- Highlights
- ----------
- Enhance the **emqttd_ctl** module to allow plugins to register new commands (#256)
- Add [emqttd_recon plugin](https://github.com/emqtt/emqttd_recon) to debug/optimize the broker (#235)
- Add **'./bin/emqttd_ctl broker pubsub'** command to check the status of core pubsub processes
- Add **'./bin/emqttd_top'** command(like etop) to show the top 'msg_q', 'reductions', 'memory' or 'runtime' processes
- 'rel/files/emqttd.config.production' for production deployment(default)
- 'rel/files/emqttd.config.development' for development deployment
- Enhancements
- ------------
- Qos1/2 messages will not be dropped under unstable mobile network (#264)
- **emqttd_session:subscribe/2, emqttd_session:unsubscribe/2** APIs should be asynchronous (#292)
- **etc/emqttd.config**: 'idle_timeout' option to close the idle client(socket connected but no 'CONNECT' frame received)
- **etc/emqttd.config**: 'unack_retry_interval' option for redelivering Qos1/2 messages
- How to monitor large 'message_queue_len' (#283)
- Bugfix
- ------
- Behaviour emqttd_auth_mod is missing init callback (#318)
- Benchmark
- ---------
- Write a new [benchmark tool](https://github.com/emqtt/emqtt_benchmark) to benchmark this release
- Hw requirements - 5K users, 25-50 msgs/sec, QoS=1 (#209)
- Supported Number of Connections Greatly Reduced When Clients are Subscribing (#324)
- .. _release_0.11.0:
- -------------------
- Version 0.11.0-beta
- -------------------
- *Release Date: 2015-09-25*
- Highlight: Rebar to manage plugin dependencies.
- Highlight: [Stomp](https://github.com/emqtt/emqttd_stomp) and [SockJS](https://github.com/emqtt/emqttd_sockjs) Plugins!
- Improve: add rel/files/emqttd.config.development|production.
- Improve: rel/reltool.config.script to release deps of plugin.
- Improve: persist mnesia schema on slave nodes.
- Improve: use timer:seconds/1 api.
- Improve: The binary release will be compiled with R18.1 now.
- Bugfix: issue#306 - emqttd_cm should unregister the duplicated client
- Bugfix: issue#310 - usage of emqttd_ctl error: 'session list' should be 'sessions list'
- Bugfix: issue#311 - './bin/emqttd_ctl sessions list' error
- Bugfix: issue#312 - unsubcribe will lead to crash if emqttd_plugin_template plugin loaded
- .. _release_0.10.4:
- -------------------
- Version 0.10.4-beta
- -------------------
- *Release Date: 2015-09-18*
- Optimize session management and upgrade eSockd library to 2.7.1
- [Benchmark for 0.10.4 release](https://github.com/emqtt/emqttd/wiki/benchmark-for-0.10.4-release)
- Improve: issue#294 - [error] failed to start connection on 0.0.0.0:1883 - enotconn
- Improve: issue#297 - How do I allow user with some pattern to access topic with some pattern?
- Bugfix: issue#291 - "./bin/emqttd attach ..." cannot work
- Bugfix: issue#284 - Should not use erlang:list_to_atom/1 in emqttd_vm.erl
- .. _release_0.10.3:
- -------------------
- Version 0.10.3-beta
- -------------------
- *Release Date: 2015-08-30*
- Bugfix: issue#271 - add emqttd_ws_client:subscribe/2 function
- Bugfix: issue#269 - bin/emqttd Syntax error on ubuntu
- Improve: issue#265 - client under unstable mobile network generate a lot of logs
- .. _release_0.10.2:
- -------------------
- Version 0.10.2-beta
- -------------------
- *Release Date: 2015-08-26*
- Improve: issue#257 - After the node name changed, the broker cannot restart for mnesia schema error.
- .. _release_0.10.1:
- -------------------
- Version 0.10.1-beta
- -------------------
- *Release Date: 2015-08-25*
- Bugfix: issue#259 - when clustered the emqttd_dashboard port is close, and the 'emqttd' application cannot stop normally.
- Feature: issue#262 - Add 'http://host:8083/mqtt/status' Page for health check
- .. _release_0.10.0:
- -------------------
- Version 0.10.0-beta
- -------------------
- *Release Date: 2015-08-20*
- [Web Dashboard](https://github.com/emqtt/emqttd_dashboard) and [MySQL](https://github.com/emqtt/emqttd_plugin_mysql), [PostgreSQL](https://github.com/emqtt/emqttd_plugin_pgsql) Authentication/ACL Plugins!
- Highlight: Web Dashboard to monitor Statistics, Metrics, Clients, Sessions and Topics of the broker.
- Highlight: JSON/HTTP API to query all clients connected to broker.
- Highlight: A new [Plugin Design](https://github.com/emqtt/emqttd/wiki/Plugin%20Design) and a [Template project](https://github.com/emqtt/emqttd_plugin_template) for plugin development.
- Highlight: Authentication/ACL with MySQL, PostreSQl databases (#194, #172)
- Feature: Session Statistics including inflight_queue, message_queue, message_dropped, awaiting_rel, awaiting_ack, awaiting_comp (#213)
- Feature: Cookie based authentication for MQTT over websocket connections (#231)
- Feature: Get all clients connected to the broker (#228, #230, #148, #129)
- Feature: "./bin/emqttd_ctl clients show ClientId" to query client status (#226)
- Feature: "./bin/emqttd_ctl clients kick ClientId" to kick out a client
- Feature: "./bin/emqttd_ctl sessions list" to show all sessions
- Feature: "./bin/emqttd_ctl sessions show ClientId" to show a session
- Feature: Erlang VM metrics monitor with Web Dashboard (#59)
- Improve: Too many "inflight queue is full!" log when session is overloaded (#247)
- Improve: There are two many "MQueue(~s) drop ~s" logs if the message queue of session is small (#244)
- Improve: gen_server2(from RabbitMQ) to improve emqttd_session, emqttd_pubsub
- Improve: Makefile to build plugins
- Bugfix: emqttd_broker:unhook/2 cannot work (#238)
- Bugfix: emqttd plugin cannot include_lib("emqttd/include/emqttd.hrl") (#233)
- Bugfix: Too many 'Session ~s cannot find PUBACK' logs (#212)
- Bugfix: emqttd_pooler cannot work
- .. _release_0.9.3:
- -------------------
- Version 0.9.3-alpha
- -------------------
- *Release Date: 2015-07-25*
- Wiki: [Bridge](https://github.com/emqtt/emqttd/wiki/Bridge)
- Improve: emqttd_protocol.hrl to define 'QOS_I'
- Improve: emqttd_pubsub to add subscribe/2 API
- Improve: ./bin/emqttd_ctl to support new bridges command
- Bugfix: issue #206 - Cannot bridge two nodes
- .. _release_0.9.2:
- -------------------
- Version 0.9.2-alpha
- -------------------
- *Release Date: 2015-07-18*
- Improve: issue #196 - Add New Hook 'client.subscribe.after'
- .. _release_0.9.1:
- -------------------
- Version 0.9.1-alpha
- -------------------
- *Release Date: 2015-07-10*
- Bugfix: issue #189 - MQTT over WebSocket(SSL) cannot work?
- Bugfix: issue #193 - 'client.ack' hook should be renamed to 'message.acked', and called by emqttd_broker:foreach_hooks
- .. _release_0.9.0:
- -------------------
- Version 0.9.0-alpha
- -------------------
- *Release Date: 2015-07-09*
- [Session, Queue, Inflight Window, Hooks, Global MessageId and More Protocol Compliant](https://github.com/emqtt/emqttd/releases/tag/0.9.0-alpha) Now!
- Feature: Session/Queue/Inflight Window Design (#145).
- Feature: Support to resume a persistent session on other clustered node.
- Feature: Support alarm management.
- Feature: emqttd_guid to generate global unique message id.
- Feature: Hooks for message pub/ack.
- Feature: Protocol compliant - message ordering, timeout and retry.
- Improve: Every client will start_link a session process, whether or not the client is persistent.
- Improve: etc/emqttd.config to support more session, queue configuration.
- Improve: issue #179 - Max offline message queue {max_queue, 100} meaning.
- Improve: issue #180 - Should change project structure for other projects maybe depend on 'emqttd'. Merge emqtt, emqttd apps.
- Improve: issue #185 - PacketId and MessageId: the broker should generate global unique message id.
- Improve: issue #187 - etc/emqttd.config to support https listener
- Improve: issue #186 - emqttd_cm to store client details
- Improve: issue #174 - add 'from' field to mqtt_message record.
- Improve: issue #170 - $SYS Topics should support alarms.
- Improve: issue #169 - Add More [Hooks](https://github.com/emqtt/emqttd/wiki/Hooks-Design)
- Improve: issue #167 - Inflight window to assure message ordering.
- Improve: issue #166 - Message delivery timeout and retry.
- Improve: issue #143 - Qos1, Qos2 PubSub message timeout.
- Improve: issue #122 - Labeling message with unique id. emqttd_guid module to generate global unique msgid.
- Improve: emqttd_bridge to support pending message queue, and fix the wrong Qos design.
- Improve: mqtt_message record to add 'msgid', 'from' and 'sys' fields.
- Change: Add emqttd_mqueue, emqttd_guid, emqttd_alarm modules.
- Bugfix: issue #184 - emqttd_stats:setstats is not right.
- Bugfix: Closed issues #181, #119.
- Tests: fix the parser, acl test cases.
- .. _release_0.8.6:
- ------------------
- Version 0.8.6-beta
- ------------------
- *Release Date: 2015-06-17*
- Bugfix: issue #175 - publish Will message when websocket is closed without 'DISCONNECT' packet
- .. _release_0.8.5:
- ------------------
- Version 0.8.5-beta
- ------------------
- *Release Date: 2015-06-10*
- Bugfix: issue #53 - client will receive duplicate messages when overlapping subscription
- .. _release_0.8.4:
- ------------------
- Version 0.8.4-beta
- ------------------
- *Release Date: 2015-06-08*
- Bugfix: issue #165 - duplicated message when publish 'retained' message to persistent client
- .. _release_0.8.3:
- ------------------
- Version 0.8.3-beta
- ------------------
- *Release Date: 2015-06-05*
- Bugfix: issue #158 - should queue:in new message after old one dropped
- Bugfix: issue #155 - emqtt_parser.erl: parse_topics/3 should reverse topics
- Bugfix: issue #149 - Forget to merge plugins/emqttd_auth_mysql from 'dev' branch to 'master' in 0.8.x release
- .. _release_0.8.2:
- -------------------
- Version 0.8.2-alpha
- -------------------
- *Release Date: 2015-06-01*
- Bugfix: issue #147 - WebSocket client cannot subscribe queue '$Q/queue/${clientId}'
- Bugfix: issue #146 - emqttd_auth_ldap: fill(Username, UserDn) is not right
- .. _release_0.8.1:
- -------------------
- Version 0.8.1-alpha
- -------------------
- *Release Date: 2015-05-28*
- Client [Presence](https://github.com/emqtt/emqttd/wiki/Presence) Support and [$SYS Topics](https://github.com/emqtt/emqttd/wiki/$SYS-Topics) Redesigned!
- Bugfix: issue #138 - when client disconnected normally, broker will not publish disconnected $SYS message
- Bugfix: fix websocket url in emqttd/priv/www/websocket.html
- Improve: etc/emqttd.config to allow websocket connections from any hosts
- Improve: rel/reltool.config to exclude unnecessary apps.
- .. _release_0.8.0:
- -------------------
- Version 0.8.0-alpha
- -------------------
- *Release Date: 2015-05-25*
- [Hooks](https://github.com/emqtt/emqttd/wiki/Hooks%20Design), Modules and [Plugins](https://github.com/emqtt/emqttd/wiki/Plugin%20Design) to extend the broker Now!
- Plugin: emqttd_auth_mysql - MySQL authentication plugin (issues #116, #120)
- Plugin: emqttd_auth_ldap - LDAP authentication plugin
- Feature: emqttd_broker to support Hooks API
- Feature: issue #111 - Support 'Forced Subscriptions' by emqttd_mod_autosub module
- Feature: issue #126 - Support 'Rewrite rules' by emqttd_mod_rewrite module
- Improve: Support hooks, modules to extend the broker
- Improve: issue #76 - dialyzer check
- Improve: 'Get Started', 'User Guide', 'Developer Guide' Wiki
- Improve: emqtt_topic to add join/1, feed_var/3, is_queue/1
- Improve: emqttd_pooler to execute common tasks
- Improve: add emqttd_sm_sup module, and use 'hash' gproc_pool to manage sessions
- Tests: add more test cases for 'emqttd' app
- .. _release_0.7.1:
- -------------------
- Version 0.7.1-alpha
- -------------------
- *Release Date: 2015-05-04*
- Add doc/design/* and merge doc/* to github Wiki
- Bugfix: issue #121 - emqttd cluster issuse
- Bugfix: issue #123 - emqttd:unload_all_plugins/0 cannot unload any plugin
- Bugfix: fix errors found by dialyzer
- .. _release_0.7.0:
- -------------------
- Version 0.7.0-alpha
- -------------------
- *Release Date: 2015-05-02*
- [MQTT over WebSocket(SSL)](https://github.com/emqtt/emqttd/wiki/MQTT-Over-WebSocket) Now!
- [Plugin Achitecture](https://github.com/emqtt/emqttd/wiki/Plugin%20Design) based on OTP application
- [Trace MQTT Packets or Messages](https://github.com/emqtt/emqttd/wiki/Trace%20Design) to log files
- Feature: issue #40, #115 - WebSocket/SSL Support
- Feature: issue #49, #105 - Plugin Architecture Support
- Feature: issue #93 - Trace API Design
- Improve: issue #109 - emqttd_broker should add subscribe, notify API
- Improve: update README.md to add 'Goals', 'Contributors' chapters
- Change: rename etc/app.config to etc/emqttd.config
- Change: etc/emqttd.config changed
- Bugfix: critical issue #54 - error when resume session!
-
- Bugfix: issue #118 - error report when UNSUBSCRIBE with no topics
- Bugfix: issue #117 - sys_interval = 0 config cannot work
- Bugfix: issue #112 - Makefile to support build plugins
- Bugfix: issue #96 - "make clean" cannot work
- .. _release_0.6.2:
- -------------------
- Version 0.6.2-alpha
- -------------------
- *Release Date: 2015-04-24*
- Bugfix: critical issue #54, #104, #106 - error when resume session
- Improve: add emqttd_cm_sup module, and use 'hash' gproc_pool to register/unregister client ids
- Improve: kick old client out when session is duplicated.
- Improve: move mnesia dir config from etc/app.config to etc/vm.args
- .. _release_0.6.1:
- -------------------
- Version 0.6.1-alpha
- -------------------
- *Release Date: 2015-04-20*
- Integrate with [gproc library](https://github.com/uwiger/gproc) to support pool
- Feature: issues#91 - should use worker_pool to handle some async work?
- Feature: issues#95 - Topic filters in ACL rule should support 'eq' tag
- Improve: issues#84 - emqttd_pubsub is redesigned again to protect mnesia transaction
- Improve: issues#74 - ACL Support and update [ACL Design Wiki](https://github.com/emqtt/emqttd/wiki/ACL-Design)
- .. _release_0.6.0:
- -------------------
- Version 0.6.0-alpha
- -------------------
- *Release Date: 2015-04-17*
- ACL Support Now: [ACL-Design Wiki](https://github.com/emqtt/emqttd/wiki/ACL-Design)
- Authentication with username, clientid Now: [Authentication Wiki](https://github.com/emqtt/emqttd/wiki/Authentication)
- Seperate common MQTT library to 'emqtt' application
- Redesign message pubsub, route and retain modules
- Redesign mnesia database cluster
- Feature: issues#47 - authentication, authorization support
- Feature: issues#92 - merge emqttd_acl and emqttd_auth to emqttd_access_control
- Feature: emqttd_acl_mod, emqttd_auth_mod behaviour to extend ACL, authentication
- Feature: issues#85 - lager:info to log subscribe, unsubscribe actions
- Feature: issues#77 - authentication with clientid, ipaddress
- Improve: issues#90 - fix lager_file_backend log format, and rotate 10 log files
- Improve: issues#88 - use '-mneisa_create', '-mnesia_replicate' attributes to init mneisa
- Improve: issues#87 - record mqtt_user and mqtt_client is duplicated
- Improve: issues#81 - redesign nodes cluster to support disc_copies mnesia tables
- Improve: issues#80 - redesign emqttd_cm to handle more concurrent connections
- Improve: issues#70 - how to handle connection flood? Now could support 2K+ CONNECT/sec
- Change: redesign mnesia tables: message, topic, subscriber, trie, trie_node
- Bugfix: issues#83 - emqttd_broker stats cannot work
- Bugfix: issues#75 - careless about function name when emqttd_pubsub handle getstats message
- .. _release_0.5.5:
- ------------------
- Version 0.5.5-beta
- ------------------
- *Release Date: 2015-04-09*
- Bugfix: issue #75 - careless about function name when emqttd_pubsub handle getstats message.
- Bugfix: issue #79 - cannot find topic_subscriber table after cluster with other nodes.
- .. _release_0.5.4:
- -------------------
- Version 0.5.4-alpha
- -------------------
- *Release Date: 2015-03-22*
- Benchmark this release on a ubuntu/14.04 server with 8 cores, 32G memory from QingCloud.com::
- 200K Connections,
- 30K Messages/Sec,
- 20Mbps In/Out Traffic,
- 200K Topics,
- 200K Subscribers,
-
- Consumed 7G memory, 40% CPU/core
- Benchmark code: https://github.com/emqtt/emqttd_benchmark
- Change: rewrite emqttd_pubsub to handle more concurrent subscribe requests.
- Change: ./bin/emqttd_ctl add 'stats', 'metrics' commands.
- Bugfix: issue #71, #72
- .. _release_0.5.3:
- -------------------
- Version 0.5.3-alpha
- -------------------
- *Release Date: 2015-03-19*
- Bugfix: issues#72 - emqttd_cm, emqtt_sm ets:match_delete/2 with wrong pattern
- .. _release_0.5.2:
- -------------------
- Version 0.5.2-alpha
- -------------------
- *Release Date: 2015-03-18*
- Change: upgrade esockd to 2.1.0-alpha, do not tune socket buffer for mqtt connection.
- .. _release_0.5.1:
- -------------------
- Version 0.5.1-alpha
- -------------------
- *Release Date: 2015-03-13*
- Change: upgrade esockd to v1.2.0-beta, rename 'acceptor_pool' to 'acceptors'
- .. _release_0.5.0:
- -------------------
- Version 0.5.0-alpha
- -------------------
- *Release Date: 2015-03-12*
- RENAME 'emqtt' to 'emqttd'!
- Support [Broker Bridge](https://github.com/emqtt/emqttd/wiki/Bridge-Design) Now!
- Change: rename project from 'emqtt' to 'emqttd'
- Change: lager:debug to dump RECV/SENT packets
- Feature: emqttd_bridge, emqttd_bridge_sup to support broker bridge
- Feature: emqtt_event to publish client connected/disconnected message to $SYS topics
- Feature: ./bin/emqttd_ctl add more commands: listeners, broker, bridges, start_bridge, stop_bridge...
- Feature: issue#57 - support to configure max packet size
- Feature: issue#68 - if sys_interval = 0, emqttd_broker will not publish messages to $SYS/brokers/#
- Bugfix: issue#67 - subscribe '#' to receive all messages
- Bugfix: issue#64 - emqtt_app start/2: should wait_for_databases
- Test: emqttd_topic_tests add more '_match_test'
- .. _release_0.4.0:
- -------------------
- Version 0.4.0-alpha
- -------------------
- *Release Date: 2015-03-10*
- Support [$SYS Topics of Broker](https://github.com/emqtt/emqttd/wiki/$SYS-Topics-of-Broker) Now!
- Feature: emqtt_broker to publish version, uptime, datetime to $SYS/brokers/# topics
- Feature: emqtt_broker to publish count of clients, sessions, suscribers to $SYS/brokers/# topics
- Feature: emqtt_metrics to publish bytes, packets, messages metrics to $SYS/brokers/# topics
- Feature: add include/emqtt_systop.hrl
- Change: emqtt_cm to count current clients
- Change: emqtt_sm to count current sessions
- Change: emqtt_pubsub to count current topics and suscribers
- Change: emqtt_pubsub to add create/1 API
- Change: emqtt_pubsub dispatch/2 to return number of subscribers
- Change: emqtt_pubsub to count 'dropped' messages
- Change: emqtt_opts to add merge/2 function
- Test: add emqtt_serialiser_tests.erl
- .. _release_0.3.4:
- ------------------
- Version 0.3.4-beta
- ------------------
- *Release Date: 2015-03-08*
- Bugfix: emqtt_serialiser.erl cannot serialise UNSUBACK packets
- .. _release_0.3.3:
- ------------------
- Version 0.3.3-beta
- ------------------
- *Release Date: 2015-03-07*
- Bugfix: emqtt_serialiser.erl cannot serialise PINGRESP issue#60
- .. _release_0.3.2:
- ------------------
- Version 0.3.2-beta
- ------------------
- *Release Date: 2015-03-05*
- Improve: merge emqttc serialiser, parser, packet
- Add: emqtt_opts to merge socket options
- .. _release_0.3.1:
- ------------------
- Version 0.3.1-beta
- ------------------
- *Release Date: 2015-03-02*
- Feature: SSL Socket Support
- Feature: issue#44 HTTP API should add Qos parameter
- Bugfix: issue#52 emqtt_session crash
- Bugfix: issue#53 sslsocket keepalive error
- Upgrade: esockd to v0.2.0
- Upgrade: mochiweb to v3.0.0
- .. _release_0.3.0:
- ------------------
- Version 0.3.0-beta
- ------------------
- *Release Date: 2015-01-19*
- Feature: HTTP POST API to support 'qos', 'retain' parameters
- Feature: $SYS system topics support
- Change: Rewrite emqtt_topic.erl, use '', '#', '+' to replace <<"">>, <<"#">>, <<"+">>
- Change: fix emqtt_pubsub.erl to match '#', '+'
- Tests: emqtt_topic_tests.erl add more test cases
- -------------------
- Version 0.3.0-alpha
- -------------------
- *Release Date: 2015-01-08*
- NOTICE: Full MQTT 3.1.1 support now!
- Feature: Passed org.eclipse.paho.mqtt.testing/interoperability tests
- Feature: Qos0, Qos1 and Qos2 publish and suscribe
- Feature: session(clean_sess=false) management and offline messages
- Feature: redeliver awaiting puback/pubrec messages(doc: Chapter 4.4)
- Feature: retain messages, add emqtt_server module
- Feature: MQTT 3.1.1 null client_id support
- Bugfix: keepalive timeout to send will message
- Improve: overlapping subscription support
- Improve: add emqtt_packet:dump to dump packets
- Test: passed org.eclipse.paho.mqtt.testing/interoperability
- Test: simple cluster test
- Closed Issues: #22, #24, #27, #28, #29, #30, #31, #32, #33, #34, #36, #37, #38, #39, #41, #42, #43
- .. _release_0.2.1:
- ------------------
- Version 0.2.1-beta
- ------------------
- *Release Date: 2015-01-08*
- pull request 26: Use binaries for topic paths and fix wildcard topics
- emqtt_pubsub.erl: fix wildcard topic match bug caused by binary topic in 0.2.0
- Makefile: deps -> get-deps
- rebar.config: fix mochiweb git url
- tag emqtt release accoding to [Semantic Versioning](http://semver.org/)
- max clientId length is 1024 now.
- .. _release_0.2.0:
- -------------
- Version 0.2.0
- -------------
- *Release Date: 2014-12-07*
- rewrite the project, integrate with esockd, mochiweb
- support MQTT 3.1.1
- support HTTP to publish message
- .. _release_0.1.5:
- -------------
- Version 0.1.5
- -------------
- *Release Date: 2013-01-05*
- Bugfix: remove QOS_1 match when handle PUBREL request
-
- Bugfix: reverse word in emqtt_topic:words/1 function
- .. _release_0.1.4:
- -------------
- Version 0.1.4
- -------------
- *Release Date: 2013-01-04*
- Bugfix: fix "mosquitto_sub -q 2 ......" bug
- Bugfix: fix keep alive bug
- .. _release_0.1.3:
- -------------
- Version 0.1.3
- -------------
- *Release Date: 2013-01-04*
- Feature: Support QOS2 PUBREC, PUBREL, PUBCOMP messages
- Bugfix: fix emqtt_frame to encode/decoe PUBREC/PUBREL messages
- .. _release_0.1.2:
- -------------
- Version 0.1.2
- -------------
- *Release Date: 2012-12-27*
- Feature: release support like riak
- Bugfix: use ?INFO/?ERROR to print log in tcp_listener.erl
- .. _release_0.1.1:
- -------------
- Version 0.1.1
- -------------
- *Release Date: 2012-09-24*
- Feature: use rebar to generate release
- Feature: support retained messages
- Bugfix: send will msg when network error
- .. _release_0.1.0:
- -------------
- Version 0.1.0
- -------------
- *Release Date: 2012-09-21*
- The first public release.
|