<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>resgate.io</title>
    <link>https://resgate.io/</link>
    <description>Recent content on resgate.io</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 03 Jul 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://resgate.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>RES Service Protocol</title>
      <link>https://resgate.io/docs/specification/res-service-protocol/</link>
      <pubDate>Wed, 03 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/specification/res-service-protocol/</guid>
      <description>Introduction This document uses the definition of resource, model, collection, value, messaging system, service, client, and gateway as described in the RES Protocol specification.&#xA;The RES-Service protocol is used in communication between the services and the gateways.&#xA;Requests Services listens to requests published by the gateways and services over the messaging system. A request consists of a subject (also called topic) and a payload.&#xA;Request subject A request subject is a string identifying the type of request, which resource it is made for, and in case of call and auth requests, which method is called.</description>
    </item>
    <item>
      <title>RES Protocol</title>
      <link>https://resgate.io/docs/specification/res-protocol/</link>
      <pubDate>Mon, 25 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/specification/res-protocol/</guid>
      <description>Introduction RES (REsource Subscription) is a protocol for creating scalable client-server Push APIs consisting of resources served from stateless services connected by a messaging system. Clients subscribe to resources, and call upon their methods, through an API agnostic gateway acting as a bridge between the services and clients.&#xA;It is designed for creating modular cloud based applications where new services and functionality can be added without causing disruption to a running production environment.</description>
    </item>
    <item>
      <title>Build Next Gen API with .NET - Part 2: Realtime updates</title>
      <link>https://resgate.io/blog/dotnet-part-2-realtime-updates/</link>
      <pubDate>Wed, 20 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/blog/dotnet-part-2-realtime-updates/</guid>
      <description>How to create a next generation API with .NET using Resgate: Part 2 - Updating data in real time.</description>
    </item>
    <item>
      <title>Build Next Gen API with .NET - Part 1: Hello World</title>
      <link>https://resgate.io/blog/dotnet-part-1-hello-world/</link>
      <pubDate>Wed, 23 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/blog/dotnet-part-1-hello-world/</guid>
      <description>How to create a next generation API with .NET using Resgate: Part 1 - Writing a Hello World service.</description>
    </item>
    <item>
      <title>Microservice messaging: The event that changed everything</title>
      <link>https://resgate.io/blog/the-event/</link>
      <pubDate>Tue, 11 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/blog/the-event/</guid>
      <description>How you can write a backend services that can update the database, the cache, and all clients&amp;rsquo; state, with a single event message. A practical example written in Go, using Resgate.</description>
    </item>
    <item>
      <title>Reliable Synchronization of Web Clients: Introducing Resgate</title>
      <link>https://resgate.io/blog/introducing-resgate/</link>
      <pubDate>Mon, 20 May 2019 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/blog/introducing-resgate/</guid>
      <description>A basic introduction to Resgate, and how it can be used to build REST and real-time APIs where all clients are reliably synchronized.</description>
    </item>
    <item>
      <title>Access Control</title>
      <link>https://resgate.io/docs/writing-services/07access-control/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/07access-control/</guid>
      <description>Resgate and the RES protocol allows full access control on all resources and their methods. Whenever a client wants to get a resource, or call a method, Resgate will first verify that the client is authorized to do so.&#xA;Earlier in Chapter 3 - Serving Resources we saw how we could grant full access to all resources for a service. Now, let&amp;rsquo;s take a closer look at how to use access control.</description>
    </item>
    <item>
      <title>Basic Concepts</title>
      <link>https://resgate.io/docs/writing-services/02basic-concepts/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/02basic-concepts/</guid>
      <description>Resources Resgate and the RES protocol is built around a concept of resources1, similar to the JSON data sent over REST APIs.&#xA;There are two types of resources:&#xA;Models Collections Models A model2 is unordered key/value data represented by a JSON object, and may look like this:&#xA;{ &amp;#34;id&amp;#34;: 42, &amp;#34;name&amp;#34;: &amp;#34;Jane Doe&amp;#34;, &amp;#34;isAdmin&amp;#34;: true } There are no restrictions on the property names (keys), but the values3 should be JSON primitives:</description>
    </item>
    <item>
      <title>Collection Events</title>
      <link>https://resgate.io/docs/writing-services/05collection-events/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/05collection-events/</guid>
      <description>Just like with the model change events, services are required to send events whenever a value has been added or removed from a collection.&#xA;Add event An add event1 is, as the name suggests, an event sent whenever a value is added to a collection. The subject has the following pattern:&#xA;event.&amp;lt;resource&amp;gt;.add&#xA;Where resource is the resource ID of the collection.&#xA;The event message is a JSON object with the following properties:</description>
    </item>
    <item>
      <title>Configuration</title>
      <link>https://resgate.io/docs/get-started/configuration/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/configuration/</guid>
      <description>Command-line Usage Resgate can be started with optional flags. Command line options will override configuration file settings.&#xA;resgate [options] Server options Option Description Default value -n, &amp;ndash;nats &amp;lt;url&amp;gt; NATS Server URL nats://127.0.0.1:4222 -i, &amp;ndash;addr &amp;lt;host&amp;gt; Bind to HOST address 0.0.0.0 -p, &amp;ndash;port &amp;lt;port&amp;gt; HTTP port for client connections 8080 -w, &amp;ndash;wspath &amp;lt;path&amp;gt; WebSocket path for clients / -a, &amp;ndash;apipath &amp;lt;path&amp;gt; Web resource path for clients /api/ -r, &amp;ndash;reqtimeout &amp;lt;seconds&amp;gt; Timeout duration for NATS requests 3000 -u, &amp;ndash;headauth &amp;lt;method&amp;gt; Resource method for header authentication -t, &amp;ndash;wsheadauth &amp;lt;method&amp;gt; Resource method for WebSocket header authentication -m, &amp;ndash;metricsport &amp;lt;port&amp;gt; HTTP port for OpenMetrics connections 0 (disabled) &amp;ndash;apiencoding &amp;lt;type&amp;gt; Encoding for web resources: json, jsonflat json &amp;ndash;putmethod &amp;lt;methodName&amp;gt; Call method name mapped to HTTP PUT requests &amp;ndash;deletemethod &amp;lt;methodName&amp;gt; Call method name mapped to HTTP DELETE requests &amp;ndash;patchmethod &amp;lt;methodName&amp;gt; Call method name mapped to HTTP PATCH requests &amp;ndash;wscompression Enable WebSocket per message compression &amp;ndash;resetthrottle &amp;lt;limit&amp;gt; Limit on parallel requests sent on a system reset 0 (no limit) &amp;ndash;referencethrottle &amp;lt;limit&amp;gt; Limit on parallel requests sent following references 0 (no limit) -c, &amp;ndash;config &amp;lt;file&amp;gt; Configuration file in JSON format Security options Option Description Default value &amp;ndash;tls Enable TLS for HTTP false &amp;ndash;tlscert &amp;lt;file&amp;gt; HTTP server certificate file &amp;ndash;tlskey &amp;lt;file&amp;gt; Private key for HTTP server certificate &amp;ndash;creds &amp;lt;file&amp;gt; NATS User Credentials file &amp;ndash;natscert &amp;lt;file&amp;gt; NATS Client certificate file &amp;ndash;natskey &amp;lt;file&amp;gt; NATS Client certificate key file &amp;ndash;natsrootca &amp;lt;file&amp;gt; NATS Root CA file(s) &amp;ndash;alloworigin &amp;lt;origin&amp;gt; Allowed origin(s): *, or &amp;lt;scheme&amp;gt;://&amp;lt;hostname&amp;gt;[:&amp;lt;port&amp;gt;] * Logging options Option Description -D, &amp;ndash;debug Enable debugging output -V, &amp;ndash;trace Enable trace logging -DV Debug and trace Common options Option Description -h, &amp;ndash;help Show usage message -v, &amp;ndash;version Show version Configuration file The configuration file is a simple JSON file.</description>
    </item>
    <item>
      <title>Custom Events</title>
      <link>https://resgate.io/docs/writing-services/10custom-events/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/10custom-events/</guid>
      <description>In some cases you might want to send events that are not about changing the state of a resource. It can be a notification that a new message has arrived, or that it is time to take a break.&#xA;Whatever it is, you can do that with custom events.&#xA;Custom events A custom event1 is like sending any other event. It has the following subject pattern:&#xA;event.&amp;lt;resource&amp;gt;.&amp;lt;name&amp;gt;&#xA;Where resource is the resource ID on which the event is sent, and name is your alphanumeric (no dots!</description>
    </item>
    <item>
      <title>Hello World</title>
      <link>https://resgate.io/docs/writing-services/01hello-world/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/01hello-world/</guid>
      <description>Note&#xA;This guide describes the RES Protocol using raw JSON calls to NATS with NodeJS examples.&#xA;For language specific service libraries, such as for .NET (dotnetcore) and Go (golang), visit those projects.&#xA;A Hello World service written for Resgate, using NodeJS, could look like this:&#xA;const nats = require(&amp;#39;nats&amp;#39;).connect(&amp;#39;nats://localhost:4222&amp;#39;); nats.subscribe(&amp;#39;get.example.model&amp;#39;, (req, reply) =&amp;gt; { nats.publish(reply, JSON.stringify({ result: { model: { message: &amp;#34;Hello, World!&amp;#34; }}})); }); nats.subscribe(&amp;#39;access.example.model&amp;#39;, (req, reply) =&amp;gt; { nats.</description>
    </item>
    <item>
      <title>Installation</title>
      <link>https://resgate.io/docs/get-started/installation/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/installation/</guid>
      <description>Install via Docker If you install Docker, it is easy to run both NATS server and Resgate as containers:&#xA;docker network create res docker run -d --name nats -p 4222:4222 --net res nats docker run --name resgate -p 8080:8080 --net res resgateio/resgate --nats nats://nats:4222 Both images are small, less than 10 MB each.&#xA;Install release binary Get the binary-zip file matching your architecture, either from the download page, or from the GitHub releases page.</description>
    </item>
    <item>
      <title>Introduction</title>
      <link>https://resgate.io/docs/get-started/introduction/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/introduction/</guid>
      <description>What is Resgate? Resgate is an open-source Realtime API Gateway.&#xA;It is a simple server that lets you create REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.&#xA;Video capture from the Book Collection Example. Try out the Live demo version yourself. How does it work? Resgate handles all API requests from your clients, instead of directly exposing your micro-services (represented by NodeJS and Go1 below). Clients will connect to Resgate, using either HTTP or WebSocket, to make requests.</description>
    </item>
    <item>
      <title>Methods</title>
      <link>https://resgate.io/docs/writing-services/06methods/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/06methods/</guid>
      <description>Each resource may have methods that can be called remotely through a call request1. It is in many ways similar to a HTTP POST request. Let&amp;rsquo;s have a look at it.&#xA;Call requests To listen for call requests, the service subscribes to a subject with the following pattern:&#xA;call.&amp;lt;resource&amp;gt;.&amp;lt;method&amp;gt;&#xA;Where resource is the resource ID and method is the alphanumeric (no dots!) name you&amp;rsquo;ve given to the method.&#xA;In code, listening to calls to method mymethod on resource example.</description>
    </item>
    <item>
      <title>Model Events</title>
      <link>https://resgate.io/docs/writing-services/04model-events/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/04model-events/</guid>
      <description>In order for Resgate to keep data synchronized across all clients, services are required to send a model change event1 whenever a model is updated.&#xA;Note&#xA;All events for a resource must be sent from the same service.&#xA;This is needed for Resgate to be sure it applies each event in the right order.&#xA;Change event When sending a change event, the subject of the message will have the following pattern:</description>
    </item>
    <item>
      <title>Nested Resources</title>
      <link>https://resgate.io/docs/writing-services/08nested-resources/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/08nested-resources/</guid>
      <description>In most cases we need to be able to create more complex data structures than flat objects and arrays.&#xA;Let&amp;rsquo;s say we want a list of items, such as this:&#xA;[ { &amp;#34;id&amp;#34;: 1, &amp;#34;item&amp;#34;: &amp;#34;foo&amp;#34; }, { &amp;#34;id&amp;#34;: 2, &amp;#34;item&amp;#34;: &amp;#34;bar&amp;#34; }, { &amp;#34;id&amp;#34;: 3, &amp;#34;item&amp;#34;: &amp;#34;baz&amp;#34; } ] Let&amp;rsquo;s take a look at how to build it.&#xA;Resource references With Resgate and the RES protocol, the services only serves resources separately, linking them together with resource references1.</description>
    </item>
    <item>
      <title>Recovery</title>
      <link>https://resgate.io/docs/writing-services/09recovery/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/09recovery/</guid>
      <description>Resgate and the RES protocol has built in ways of ensuring that data is synchronized, as well as ways to recover from lost connections and server crashes.&#xA;Whenever a microservice suspects that the resources stored in Resgate&amp;rsquo;s cache may no longer be up-to-date, the microservice must send a signal to Resgate, so that measures can be taken to resynchronize. This should be done in cases such as when:&#xA;microservice is disconnected and reconnects to NATS microservice restarts from a crash resources are modified without the microservice being able to send proper events to describe the mutations The way to signal this is through a system reset event.</description>
    </item>
    <item>
      <title>RES-Client Protocol</title>
      <link>https://resgate.io/docs/specification/res-client-protocol/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/specification/res-client-protocol/</guid>
      <description>Introduction This document uses the definition of resource, model, collection, value, service, client, and gateway as described in the RES Protocol specification.&#xA;The RES-Client protocol is used in communication between the client and the gateway.&#xA;Subscriptions A core concept in the RES-Client protocol is the subscriptions. A client may subscribe to resources by making subscribe requests with the unique resource ID, or by getting a resource response on a call request or auth request.</description>
    </item>
    <item>
      <title>Serving Resources</title>
      <link>https://resgate.io/docs/writing-services/03serving-resources/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/03serving-resources/</guid>
      <description>The Hello World example showed how to serve a simple model. Let&amp;rsquo;s learn how it works.&#xA;Get requests A get request1 from Resgate is similar to a HTTP GET request. It differs that it is sent over NATS instead of HTTP, and that the response must be a JSON object with a certain structure.&#xA;To listen for get requests, the service must subscribe to a subject with the pattern:&#xA;get.&amp;lt;resource&amp;gt;</description>
    </item>
    <item>
      <title>Setting HTTP Headers</title>
      <link>https://resgate.io/docs/writing-services/11setting-http-headers/</link>
      <pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-services/11setting-http-headers/</guid>
      <description>When a new HTTP or WebSocket connection is made, you might want to set the HTTP status or HTTP headers, such as Set‑Cookie, in the response to the client. This can be done by including meta objects in the response to auth, access or call requests. Let&amp;rsquo;s learn how to do it!&#xA;HTTP and WebSocket connection The payload for an auth request1, call request2, or access request3 may contain a parameter, isHttp, that can be set to true.</description>
    </item>
    <item>
      <title>Book Collection</title>
      <link>https://resgate.io/books/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/books/</guid>
      <description></description>
    </item>
    <item>
      <title>Client Sessions</title>
      <link>https://resgate.io/docs/advanced-topics/client-sessions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/client-sessions/</guid>
      <description>In Chapter 7 - Access control in the Writing services guide, we learn how to set a client&amp;rsquo;s access token. This token will be stored by Resgate for as long as the client&amp;rsquo;s WebSocket connection remains. If the connection is lost, even for a second, Resgate will discard the token, forcing the client to reauthenticate itself when it reconnects.&#xA;While this is positive from a security perspective, it is rather inconvenient.</description>
    </item>
    <item>
      <title>Connection Resources</title>
      <link>https://resgate.io/docs/advanced-topics/connection-resources/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/connection-resources/</guid>
      <description>In some cases you might want the client to get connection specific information, most commonly information on the user which the connection is logged in as. Since the connection&amp;rsquo;s access token is not available to the client, we need some other way to send the data to the client.&#xA;In the Client Session example, we can see how this is done using connection resources. Let&amp;rsquo;s have a closer look at how it works!</description>
    </item>
    <item>
      <title>Download Resgate</title>
      <link>https://resgate.io/download/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/download/</guid>
      <description>Linux 64-bit Download (2.70&amp;nbsp;MB) Microsoft Windows 64-bit Download (2.76&amp;nbsp;MB) Apple macOS 64-bit Download (2.75&amp;nbsp;MB) Stable versions File name OS Arch Size resgate-v1.8.0-darwin-amd64.zip macOS x64 2.75 MB resgate-v1.8.0-darwin-arm64.zip macOS ARM64 2.59 MB resgate-v1.8.0-linux-386.zip Linux x86 2.53 MB resgate-v1.8.0-linux-amd64.zip Linux x64 2.70 MB resgate-v1.8.0-linux-arm6.zip Linux ARMv6 2.51 MB resgate-v1.8.0-linux-arm7.zip Linux ARMv7 2.51 MB resgate-v1.8.0-linux-arm64.zip Linux ARM64 2.48 MB resgate-v1.8.0-windows-386.zip Windows x86 2.63 MB resgate-v1.8.0-windows-amd64.zip Windows x64 2.76 MB Tip&#xA;Resgate can also be easily installed via Docker.</description>
    </item>
    <item>
      <title>Examples</title>
      <link>https://resgate.io/docs/get-started/examples/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/examples/</guid>
      <description>Note&#xA;In order to run the examples, you must have installed NATS Server and Resgate, listening on their default ports.&#xA;All examples are complete with both service and client.&#xA;NodeJS The resgate repository contains examples written for NodeJS. These examples use the nats client directly, without the use of any extra library. That makes them perfect to use in combination with the Writing Services guide.&#xA;Running an example Run the following commands, but change hello-world to the example you wish to try:</description>
    </item>
    <item>
      <title>Extend Timeout</title>
      <link>https://resgate.io/docs/advanced-topics/extend-timeout/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/extend-timeout/</guid>
      <description>Resgate will send requests blindly onto NATS, waiting for a microservice to respond. If no response is received within a set amount of time (defaults to 3 seconds), Resgate will discard the request and send a system.timeout1 error to the client.&#xA;In some cases, a microservice may knowingly take longer time to process a request. Fortunately, the RES protocol provides a way for the microservice to extend the timeout for individual requests.</description>
    </item>
    <item>
      <title>FAQ</title>
      <link>https://resgate.io/docs/get-started/faq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/faq/</guid>
      <description>Is Resgate free to use? Yes, completely. Resgate is released under the permissive MIT license.&#xA;What does RES stand for? RES as in Resgate stands for REsource Subscription.&#xA;What language is Resgate written in? Go. The same goes for NATS Server, which is used in conjunction with Resgate.&#xA;Can Resgate turn my existing REST protocol into a realtime API? Not just like that. You may use a service, such as rest2res, to turn your legacy API into a live API, accessible through Resgate.</description>
    </item>
    <item>
      <title>Live Demo</title>
      <link>https://resgate.io/demo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/demo/</guid>
      <description>Hello World Demo Fetching resources served with Resgate can either be done through HTTP(s):&#xA;https://api.resgate.io/api/example/model Or by using ResClient, a javascript library that gets both data and updates through WebSocket:&#xA;&amp;lt;pre id=&#34;output&#34;&gt;&amp;lt;/pre&gt; const ResClient = resclient.default; // Creating a client instance. let client = new ResClient(&#39;wss://api.resgate.io&#39;); // Get the resource from the service. // Try changing &#39;example.model&#39; to &#39;example.users&#39;. client.get(&#39;example.model&#39;).then(data =&gt; { let json = JSON.stringify(data, null, 2); output.textContent = json; }).</description>
    </item>
    <item>
      <title>Query Resources</title>
      <link>https://resgate.io/docs/advanced-topics/query-resources/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/query-resources/</guid>
      <description>One of the more complex issues when it comes to real time updates, are queries.&#xA;Let&amp;rsquo;s say we have an inventory database which we wish to make searchable. We want to be able to filter the search by fields such as category, stock status, and created date. In case the search result might be large, we also wish to limit how many items we return, letting the user browse through pagination.</description>
    </item>
    <item>
      <title>ResClient</title>
      <link>https://resgate.io/docs/writing-clients/resclient/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-clients/resclient/</guid>
      <description>All resources and methods can be accessed using ordinary HTTP requests. But to get realtime updates from Resgate, you should be using ResClient instead.&#xA;What is ResClient? ResClient1 is a javascript client library that uses WebSocket and the RES-client protocol2 to communicate with Resgate.&#xA;It can be installed with npm:&#xA;npm install resclient --save Or with yarn:&#xA;yarn add resclient Or by downloading it from a CDN:&#xA;&amp;lt;script src=&amp;#34;https://cdn.jsdelivr.net/npm/resclient@latest/dist/resclient.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt; Basic usage Connect ResClient need no prior knowledge about the API it connects to.</description>
    </item>
    <item>
      <title>Resource Viewer</title>
      <link>https://resgate.io/viewer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/viewer/</guid>
      <description></description>
    </item>
    <item>
      <title>Resources</title>
      <link>https://resgate.io/docs/get-started/resources/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/get-started/resources/</guid>
      <description>Tip&#xA;Do you miss a service library or utility?&#xA;Be the first one to write it, and have it added here!&#xA;Service libraries It is not required to use a service library for building services, as the protocol is simple enough. But sure, it helps.&#xA;Name Description Language Developer go-res Go package for writing RES services Go Samuel Jirénius ResgateIO.Service .NET Core library for writing RES services C# Samuel Jirénius Client libraries To connect to Resgate via WebSocket, a RES client library is needed.</description>
    </item>
    <item>
      <title>Roadmap</title>
      <link>https://resgate.io/docs/about/roadmap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/about/roadmap/</guid>
      <description>The roadmap represents coming features lined up for the future of Resgate and its ecosystem. Its purpose is to give insight into the major features that will be implemented in the near future.&#xA;This is a living document where priorities may be re-evaluated based on the valuable input from the Resgate community. Please contact us through the forum with any questions, comments, or requests.&#xA;2020 - Q3 .NET service library database interface 1 RES protocol resource reset event 2 RES protocol stream resource type 3 2020 - Q4 Resgate syslog support 4 Resgate monitoring feature 5 .</description>
    </item>
    <item>
      <title>Scaling</title>
      <link>https://resgate.io/docs/advanced-topics/scaling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/scaling/</guid>
      <description>Resgate and the RES protocol has been developed with scaling in mind. There are many dimensions in which a system might grow, and different types of growth might require different solutions. In this document, we will be looking at different ways infrastructures using Resgate may be built to scale.&#xA;Client connections There are limits on how many concurrent connections a single server can handle. As the user base grows, the capacity to accommodate the increasing number of connections must grow with it.</description>
    </item>
    <item>
      <title>Support Resgate</title>
      <link>https://resgate.io/support/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/support/</guid>
      <description>Resgate is an MIT licensed open source project and completely free to use, together with all its surrounding libraries.&#xA;Has Resgate helped you in your work? Does your company use it as a part of their product?&#xA;Do you wish for it to stay healthy and actively developed?&#xA;Now you can sponsor it! :)&#xA;Note&#xA;All donations goes directly to support the continued development of Resgate.&#xA;One time donations One-time donation can be made via Paypal:</description>
    </item>
    <item>
      <title>Token Update</title>
      <link>https://resgate.io/docs/advanced-topics/token-update/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/advanced-topics/token-update/</guid>
      <description>The token that is issued in a connection token event1 helps services to determine what resources the connection should have access to. But sometimes a user&amp;rsquo;s access may change as they are granted new, or denied previous, permissions. Or maybe the user is kicked out, and should have their access revoked all together.&#xA;In order to update or revoke tokens, the RES protocol provides a way to identify tokens, and request for them to be updated.</description>
    </item>
    <item>
      <title>Using Modapp</title>
      <link>https://resgate.io/docs/writing-clients/using-modapp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-clients/using-modapp/</guid>
      <description>We will base this guide on Book Collection example, which shows an editable list of books, with their titles and authors. To try out the example, visit the link and follow the instructions.&#xA;Before we go into the code on how to use ResClient together with Modapp components, we need to have a look at what Modapp is.&#xA;What is Modapp? Modapp1 is a framework developed by Samuel Jirénius, creator of Resgate, and is described as:</description>
    </item>
    <item>
      <title>Using React</title>
      <link>https://resgate.io/docs/writing-clients/using-react/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-clients/using-react/</guid>
      <description>We will base this guide on Book Collection example - React, which shows an editable list of books, with their titles and authors. To try out the example, visit the link and follow the instructions.&#xA;Before we go into the code on how to use ResClient together with React, we need to have a look at how ResClient handles state.&#xA;State ResClient stores and manages the state in model and collection objects, which represents the state as it is on the backend.</description>
    </item>
    <item>
      <title>Using Vue.js</title>
      <link>https://resgate.io/docs/writing-clients/using-vuejs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://resgate.io/docs/writing-clients/using-vuejs/</guid>
      <description>We will base this guide on Book Collection example - Vue.js, which shows an editable list of books, with their titles and authors. To try out the example, visit the link and follow the instructions.&#xA;Before we go into the code on how to use ResClient together with Vue.js, we need to have a look at how ResClient handles state.&#xA;State ResClient stores and manages the state in model and collection objects, which represents the state as it is on the backend.</description>
    </item>
  </channel>
</rss>
