GithubHelp home page GithubHelp logo

mqtt-hs for an MQTT server about mqtt-hs HOT 4 CLOSED

dustin avatar dustin commented on July 19, 2024
mqtt-hs for an MQTT server

from mqtt-hs.

Comments (4)

dustin avatar dustin commented on July 19, 2024

All of my mqtt services are currently using https://github.com/dustin/mqttd which is, as far as I can tell, more feature-complete than mosquitto. I had a few bugs with mosquitto that were bothering me, so I also wanted to see what it'd take to write such a thing. :)

I'm not entirely sure how adaptable that is. Perhaps it'd be possible to extract the state management. This is an area I'm not super familiar with. My code currently manages its data structures with STM and persist state with SQLite. It'd probably be possible to abstract the SQLite bits.

from mqtt-hs.

cdupont avatar cdupont commented on July 19, 2024

That's great!! I didn't find it last time I looked for an MQTT broker in Haskell. Can it be put on Hackage?

from mqtt-hs.

dustin avatar dustin commented on July 19, 2024

I'm not opposed to the idea. https://hackage.haskell.org/package/mqttd isn't taken. I think of it more as a program than anything, so it seems a bit odd to me. It'd be fantastic if someone else could benefit from the service, though.

24 hours of my home mqttd on an Orange Pi looks like this:

Screen Shot 2021-05-19 at 10 47 41

Fairly normal stuff. "actions" is mainly timed tasks for stuff like expiring sessions or retained messages (I use MQTT v5 retention timeouts a lot). "influx spool" is how much junk influxer has read and written to disk waiting for connectivity to return so it can stick it in a remote influxdb.

Are you able to try it without hackage and see if it looks remotely useful? It'd be good to get any obvious stuff fixed up before it publishing it. I've been relying on it for around a year now and have had fewer problems than I did with mosquitto. :)

Worth noting that it doesn't have built-in replication. I don't see that as a useful thing as mosquitto's built-in replication also didn't work well for me, so I wrote mqtt-bridge to handle that. Specifically, it properly bridges mqtt v5 properties including remaining expiration time on retained items.

from mqtt-hs.

dustin avatar dustin commented on July 19, 2024

I'll go ahead and close this since there's a working solution. Please let me know on https://github.com/dustin/mqttd if there's anything that can make that more useful.

(I've got two open issues that are there for theoretical correctness, but don't affect me)

from mqtt-hs.

Related Issues (15)

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.