asynq icon indicating copy to clipboard operation
asynq copied to clipboard

[FEATURE REQUEST] Client in other languages

Open hibiken opened this issue 4 years ago • 13 comments

Is your feature request related to a problem? Please describe. We could offer client libraries in other languages. Web applications written in another language can use the client library to enqueue tasks.

Describe the solution you'd like Add a client library for

  • [ ] Python
  • [ ] Ruby
  • [ ] Node.js
  • [ ] Java
  • [ ] PHP
  • [ ] Rust
  • [ ] Elixir

Additional context These client libraries should be its own repo.

hibiken avatar Mar 07 '20 21:03 hibiken

Rust would also be great

ianldgs avatar Sep 06 '20 18:09 ianldgs

@ianldgs Definitely, added Rust to the list 👍

hibiken avatar Sep 06 '20 22:09 hibiken

Rust 💯

dineshgowda24 avatar Dec 03 '20 13:12 dineshgowda24

Java

mvcatsifma avatar Jun 14 '21 10:06 mvcatsifma

php

anxiaowen avatar Jul 07 '21 10:07 anxiaowen

I am working on a client library for python https://github.com/newlife/asynq-py 。

For now ,It works fine for me ,I just need send task ran immediately, which is complete.

Next , I will finish next part which task to be processed in the future, shown in the example .

If there is any feature I missed, let me know ,I will add if I can

Wish this client can make some help

newlife avatar Aug 24 '21 15:08 newlife

Is there anyone working in a rust client? this is something that I would like to work on

ianprogrammer avatar Aug 29 '21 08:08 ianprogrammer

@ianprogrammer Please let us know if you end up creating a client library in Rust. We'll make sure to list the client libraries in other languages in the README.

Also, please feel free to ping me here or open a discussion if you have questions on the current implementation in Go client 👍

hibiken avatar Aug 30 '21 02:08 hibiken

the right way to this is maybe with API server, clients in other languages is simple http client...

a5r0n avatar Apr 27 '22 14:04 a5r0n

@a5r0n thanks for the comment! It's a good point, we could add a HTTP/gRPC service that accepts requests and enqueues the tasks. That service can also be responsible for pushing the task to Handler services via HTTP/gRPC also :) I think we can explore this as an extension to the library 👍 (i.e. implementation should live in either separate repo, or under /x directory)

hibiken avatar Apr 28 '22 12:04 hibiken

i am planning to write a protoc-plugin so i can reuse grpc client interface to enqueue tasks.

please let me know if u have similar idea. may be i can do some contribution and avoid doing things repeatedly.

yxlimo avatar May 09 '22 08:05 yxlimo

the right way to this is maybe with API server, clients in other languages is simple http client...

So, should other lang clients know the host address and port? and... need some gateways for discovery and load balancing? @a5r0n @hibiken

TongChia avatar May 08 '23 02:05 TongChia

client for TBD did you mean hosting process for asynq? could you please clarify

i saw some proto files, but without service definition looks asynq gRPC server will be good enough - grpc supports lot of languages

some weeks ago i finished similar server and looking for new open source project

g41797 avatar Dec 30 '23 13:12 g41797