Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RMQTT Development Direction Discussion #10

Open
rmqtt opened this issue May 27, 2023 · 19 comments
Open

RMQTT Development Direction Discussion #10

rmqtt opened this issue May 27, 2023 · 19 comments

Comments

@rmqtt
Copy link
Owner

rmqtt commented May 27, 2023

Thank you for your support and attention to RMQTT. For the future development direction of RMQTT, you can put forward valuable suggestions and opinions according to your specific business needs in the process of use.

thank you all

@timzaak
Copy link

timzaak commented May 27, 2023

  1. IoT platform may be a choice. Even though there are so many SAAS IoT platforms. but these platforms always has hardware module and SDK to be integrated with. the foundation of such IoT platform should has more than 5 memebers team to work on it.
  2. IoT tuturial blog/docs.
  3. May spend time to find out where is the customer

EMQX now is to be solution provider of car connection. 它从开源到商业化的契机是电信测试发现只有他家的性能能扛得住,而且必须以公司的形式才能合作。
Mosquitto, born at the right time. 在做嵌入式客户端选型的时候,都会优先考虑移植它。
IoT platform of aliyun. 他们的竞争力已经从单一的平台,拓展到综合外包,类似小米 IoT App 一两天就能搭建完毕。服务范围也衍生到全球,主打一个全球合规。国内其他云还赶不上。
涂鸦. 起了个大早,上了市,类似阿里云的服务内容,但现在也缩编,靠老客户续命。
Jetlink,背靠 Java 生态,区分社区和商业版本,靠卖商业版代码+技术支持服务维生。专精于国内,做的也不错。

如果目标只是做 MQTT 的基础设施,好的教程示例和 benchmark 必不可少。各开源MQTT,也得对比一下。
从性能上讲,EMQX 应该做到了极致,但开源版本可能还有不少可优化提升的地方。
从易用性上讲, Mosquitto 的网上资料多,各语言的客户端封装很好。背靠好爹。
从宣传上讲,RMQTT 可主打 Rust 安全,但 ntex 侵入性强,它也不火,我项目MQTT客户端最终选择了 Mosquitto client(用 Rust 封装 C client)。

另外,我也在想这种基础设施的开源,如何能活下去,貌似还是要做好大量宣传,找好客户,做好定位。有人用,有人原因付钱,才可能有迭代下去的动力、资源。当然我也卡在这里了。

@rhello2999
Copy link

[WIP] my compute has no power now.

  1. IoT platform may be a choice. Even though there are so many SAAS IoT platforms. but these platforms always has hardware module and SDK to be integrated with. the foundation of such IoT platform should has more than 5 memebers team to work on it.
  2. IoT tuturial blog/docs.
    ...

As a fundamental component of the IoT platform, RMQTT will continue to improve its functionality and documentation.

Thank you

@rhello2999
Copy link

  1. IoT platform may be a choice. Even though there are so many SAAS IoT platforms. but these platforms always has hardware module and SDK to be integrated with. the foundation of such IoT platform should has more than 5 memebers team to work on it.
  2. IoT tuturial blog/docs.
  3. May spend time to find out where is the customer

EMQX now is to be solution provider of car connection. 它从开源到商业化的契机是电信测试发现只有他家的性能能扛得住,而且必须以公司的形式才能合作。 Mosquitto, born at the right time. 在做嵌入式客户端选型的时候,都会优先考虑移植它。 IoT platform of aliyun. 他们的竞争力已经从单一的平台,拓展到综合外包,类似小米 IoT App 一两天就能搭建完毕。服务范围也衍生到全球,主打一个全球合规。国内其他云还赶不上。 涂鸦. 起了个大早,上了市,类似阿里云的服务内容,但现在也缩编,靠老客户续命。

如果目标只是做 MQTT 的基础设施,好的教程示例和 benchmark 必不可少。各开源MQTT,也得对比一下。 从性能上讲,EMQX 应该做到了极致,但开源版本可能还有不少可优化提升的地方。 从易用性上讲, Mosquitto 的网上资料多,各语言的客户端封装很好。背靠好爹。 从宣传上讲,RMQTT 可主打 Rust 安全,但 ntex 侵入性强,它也不火,我项目MQTT客户端最终选择了 Mosquitto client(用 Rust 封装 C client)。

另外,我也在想这种基础设施的开源,如何能活下去,貌似还是要做好大量宣传,找好客户,做好定位。有人用,有人原因付钱,才可能有迭代下去的动力、资源。当然我也卡在这里了。

是的,RMQTT的第一目标就是作为MQTT的基础设施,之后会先完善一些文档,准备一些代码样板,比如auth-http-server等。也在考虑简化对ntex-mqtt的依赖。

@timzaak
Copy link

timzaak commented Jun 4, 2023

对了,若是有商业用户,麻烦挂一下到 README 里,至少这样别人也才有意愿去试错

@rhello2999
Copy link

对了,若是有商业用户,麻烦挂一下到 README 里,至少这样别人也才有意愿去试错

有道理!

@greenpdx
Copy link

IoT master is the best fit. rmqtt supports grpc, mqtt and http(s). I am using it on a RPi to control a local network of small IoT devices. The data from the IoT will be stored on the RPi and a Vue web app will control the system.
Right now I have a proof-of-concept web interface to all the http-api.

I would like to see a config section for serving http(s) pages using salvo. (BTW salvo is at 0.44.x)
Documentation and examples is also very necessary.
rmqtt is the only broker I found that is written in rust that supports many protocols.

@rmqtt
Copy link
Owner Author

rmqtt commented Jul 1, 2023

IoT master is the best fit. rmqtt supports grpc, mqtt and http(s). I am using it on a RPi to control a local network of small IoT devices. The data from the IoT will be stored on the RPi and a Vue web app will control the system. Right now I have a proof-of-concept web interface to all the http-api.

I would like to see a config section for serving http(s) pages using salvo. (BTW salvo is at 0.44.x) Documentation and examples is also very necessary. rmqtt is the only broker I found that is written in rust that supports many protocols.

Thank you for your suggestion.

Do you want HTTP API to support HTTP (s)?

@greenpdx
Copy link

greenpdx commented Jul 1, 2023

https is secure. I would like to have a web server interface along with having a http-api
now there is HOST/api/v1
I would like HOST/ and HOST/app, ....

@diablur
Copy link
Contributor

diablur commented Sep 5, 2023

什么时候同步到ntex-mqtt的新版本?

@rmqtt
Copy link
Owner Author

rmqtt commented Sep 5, 2023 via email

@diablur
Copy link
Contributor

diablur commented Sep 6, 2023

我尝试升级过,还是可以改的,另外现在的n tex-mqtt的websocket example 一直跑不通,不知道你们试过没

对ntex-mqtt的改动太大,基本没法简单同步了,现在主要用到的是ntex-mqtt对mqtt的编解码部分,暂时没有同步到最新的必要了。

---- 回复的原邮件 ----
| 发件人 | @.> |
| 日期 | 2023年09月05日 15:13 |
| 收件人 | @.
> |
| 抄送至 | @.>@.> |
| 主题 | Re: [rmqtt/rmqtt] RMQTT Development Direction Discussion (Issue #10) |

什么时候同步到ntex-mqtt的新版本?


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

@rmqtt
Copy link
Owner Author

rmqtt commented Sep 7, 2023 via email

@ColdwindY
Copy link

MQTT over QUIC 是否可以考虑增加

@rmqtt
Copy link
Owner Author

rmqtt commented Nov 8, 2023 via email

@akrizs
Copy link

akrizs commented Jan 19, 2024

Out of curiosity, has the development on this stopped? What is the status?

Have you guys tried to compile this on a mac m3 (arm64), i'm having some issues trying to compile it.

Looks like a really great product! well done!

@rmqtt
Copy link
Owner Author

rmqtt commented Jan 19, 2024 via email

@akrizs
Copy link

akrizs commented Jan 22, 2024

Hello, I don’t have a mac m3 environment, so I haven’t tried compiling on it. What compilation problems did you encounter?

---- Replied Message ---- | From | Anton @.> | | Date | 01/19/2024 16:30 | | To | @.> | | Cc | @.>@.> | | Subject | Re: [rmqtt/rmqtt] RMQTT Development Direction Discussion (Issue #10) | Out of curiosity, has the development on this stopped? What is the status? Have you guys tried to compile this on a mac m3 (arm64), i'm having some issues trying to compile it. Looks like a really great product! well done! — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

I think i boiled it down to this:

When i try to compile inside of a arm64 container on m3 mac i get:

configure: WARNING: using cross tools not prefixed with host triplet
  In file included from include/jemalloc/internal/jemalloc_internal_externs.h:4,
                   from include/jemalloc/internal/tsd.h:8,
                   from include/jemalloc/internal/ckh.h:4,
                   from include/jemalloc/internal/prof_structs.h:4,
                   from include/jemalloc/internal/jemalloc_internal_includes.h:51,
                   from src/background_thread.c:2:
  include/jemalloc/internal/atomic.h:22:4: error: #error "Don't have atomics implemented on this platform."
     22 | #  error "Don't have atomics implemented on this platform."
        |    ^~~~~

and if i try to run as a amd64 container using rosetta for emulation i get this:

Compiling ring v0.16.20
error: failed to run custom build command for `ring v0.16.20`

Caused by:
  process didn't exit successfully: `/workspaces/rmqtt/target/release/build/ring-388a3ea58c212d27/build-script-build` (exit status: 1)
  --- stdout
  running: ZERO_AR_DATE="1" "musl-ar" "cq" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/libring-core.a" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aesni-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/vpaes-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/x86_64-mont-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/x86_64-mont5-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/chacha-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/p256-x86_64-asm-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aesni-gcm-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ghash-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/sha512-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/chacha20_poly1305_x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/sha256-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aes_nohw.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/montgomery.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/montgomery_inv.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/limbs.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/mem.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/poly1305.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/crypto.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/curve25519.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ecp_nistz.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ecp_nistz256.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/gfp_p256.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/gfp_p384.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/cpu-intel.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/poly1305_vec.o"
  exit status: 127

  --- stderr


  error occurred: Command ZERO_AR_DATE="1" "musl-ar" "cq" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/libring-core.a" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aesni-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/vpaes-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/x86_64-mont-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/x86_64-mont5-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/chacha-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/p256-x86_64-asm-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aesni-gcm-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ghash-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/sha512-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/chacha20_poly1305_x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/sha256-x86_64-elf.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/aes_nohw.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/montgomery.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/montgomery_inv.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/limbs.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/mem.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/poly1305.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/crypto.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/curve25519.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ecp_nistz.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/ecp_nistz256.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/gfp_p256.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/gfp_p384.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/cpu-intel.o" "/workspaces/rmqtt/target/x86_64-unknown-linux-musl/release/build/ring-daa7a0dddf8260cb/out/poly1305_vec.o" with args "musl-ar" did not execute successfully (status code exit status: 127).

@greenpdx
Copy link

I can compile on the RPi4 ARM64 with no problem

@akrizs
Copy link

akrizs commented Jan 22, 2024

when i tested it with "cross" without giving target as an argument i got some error saying that "aarch64-apple-darwin" not a target, so there is something else needed to build it on a apple device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants