Python graphql websocket subscription client - python-3.x

I'm starting a test project where I'm required to validate graphql websocket subscription data from a python test framework. Typically I'll just write my own libraries for interacting with the various servers, but I cannot find a reasonable description of the protocol in this case.
My question(s) is as follows:
Is there a reasonable python library out there to function as a graphql subscription client?
[and|or] Is there some sort of RFC, or detailed protocol description so I can just write my own?
Sorry for the basic question in advance, My google-fu is weak this morning and while I've found several graphql python libraries, I've been struggling to find information on a reasonable client.
Thanks!

You can use the graphql-python/gql package, it supports the apollo and graphql-ws protocols.

I just wrote my own client using this document as a protocol description
And this Python library to retrieve the constants

Related

How to use Telegram's TDlib with Node.js

There is TDlib which allows to work with Telegram Client API.
Documentation says that it's possible to use it with almost any language.
I can't imagine myself how I can use it with Node.js
Could you tell me where to start from or provide me with a sample code?
You can make requests and get updates using td_json_client and node-ffi interfaces. Official repository provides a simple example.
If you don't want to create API client from zero, you may use one of exists. For example, check out Airgram. This is a strong typed tdlib client for NodeJS.
You can probably port one of the examples on their GitHub repos (Python can be an easy one). You needs to learn how to use binary modules with node.
Or you can check one of the 3rd party libraries (eg. https://github.com/k-egor-smirnov/node-tg-native)
There are 2 active TDLib wrappers in Node.js:
https://github.com/airgram/airgram
https://github.com/Bannerets/tdl
Both require you to build the TDLib binary yourself before using these wrapper: https://tdlib.github.io/td/build.html

Replaying RPC calls for testing purposes

We are using a 3rd party library (Google Spanner) that uses gRPC in a node application. One of pain points we have is ability to easily mock responses from this library for testing purposes.
If anyone had similar issues, were you able to solve it? I was thinking of a tool that could record/replay rpc calls (there are many great libraries for recording/replaying HTTP calls) but couldn't find anything similar for RPC. I came up across Google's rpcreplay (https://github.com/GoogleCloudPlatform/google-cloud-go/tree/master/rpcreplay) but to my understanding it's intended to be used in Go applications.
At Traffic Parrot we have been working on a solution to your problem in our service virtualization tool which includes a user interface that can be used to define the mock behaviour.
We have recently added a tutorial on how to mock gRPC responses over the wire given a proto file.
You can also find information on how to record and replay over the wire in the documentation.

Oauth2 for Node.js

I find myself in need of a Oauth2 library for node.js. Could someone share their opinion on which library is best and most simple to use or can I perform the request without a library? I need it to perform a single request.
passport.js has good documentation and supports most common providers.

How to create cboden/rachet RPC implementation?

I'm learning websockets and just learned how to use sub/pub using cboden/ratchet example push integration as my server and autobahnjs for my browser. my question is does ratchet or autobahn supports rpc?
If you have any sources or examples it's highly appreciated. cheers!

How must a Node JS server be configured to function as an endpoint for a Breeze JS application

At this point, I'm convinced that declarative bindings backed by a robust data query service is the secret sauce for writing scalable rich client applications for the web.
Obviously there are many options for declarative data binding (Knockout JS and Rivets for Backbone to name just a few). However, when it comes to querying the server, caching data and tracking changes on the client, the only modular solution that looks half way mature seems to be Breeze JS. And yet, while it claims not to dictate server technology, all documentation examples show Breeze running with .NET.
What requirements, API-related or otherwise, must a server fulfill in order to serve as an endpoint for a Breeze application? Is implementing the OData protocol enough? Are there any examples out there to light the way? Or other libraries solving this problem that I've missed?
you can use nodejs as an oData server with JayData
http://jaydata.org/blog/install-your-own-odata-server-with-nodejs-and-mongodb
it's free and open source
Yes, OData is sufficient. However, we are still working on OData save support (querying is fine, of course).
Sorry for the delay in getting out non-.NET samples. We are definitely committed to an open, pluggable back-end and will be releasing more samples in the next few weeks.
Also, please vote for these features (or submit your own) on our UserVoice feedback page. This helps us prioritize what to work on next. Thanks!

Resources