• Stars
    star
    980
  • Rank 46,713 (Top 1.0 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 6 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Swell: API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, gRPC, and tRPC..

Swell

License: MIT GitHub package.json version contributions welcome Tweet

Swell is an API development tool that enables developers to test HTTP2, GraphQL endpoints, as well as ones served over streaming technologies including Server-Sent Events (SSE), WebSockets, gRPC, WebRTC, and OpenAPI.

Getting Started

Visit www.getswell.io to download the latest release.

Swell is available for OSX, Linux, and Windows.

Highlights

Swell is a one-stop shop for sending and monitoring your API requests:

  • Send and monitor streams over HTTP/2 (including SSEs) and WebSockets
  • Create GraphQL queries, introspections, mutations, and subscriptions
  • Stress testing HTTP/2 and GraphQL endpoints
  • Create your own HTTP/2 mock server
  • Store workspaces of multiple requests for later use
  • Import and export workspaces locally
  • Compose test suites in JavaScript with Chai-style TDD/BDD assertion syntax

Core features

  • HTTP2: Swell supports full HTTP2 multiplexing of requests and responses. HTTP requests to the same host will be sent over the same connection. Swell will attempt to initiate an HTTP2 connection for all HTTPS requests by default, with the ability to revert to HTTP1.1 for legacy servers. Multiple concurrent streams are allowed for each connection.

  • GraphQL: Swell includes full support for all three root types of GraphQL - queries, mutations, and subscriptions – as well as Introspection. Variables are also supported, making creating queries easy.

  • Server-Sent Events (SSE): Initiated by a simple toggle box, Swell displays SSE events one by one as they come in. Similar to HTTP2 streams, multiple open connection streams are allowed for SSE.

  • WebSockets (WS): Swell enables connecting directly to WebSocket servers with an HTTP handshake, with developers able to send messages to the connected WS server directly. All outgoing and incoming messages are displayed in real time.

  • gRPC: Swell includes full support for all four streaming types of gRPC - unary, client stream, server stream, bidirectional stream.

Additional features

  • Stress testing for HTTP/2 and GraphQL: Test your server backend with Swell's stress testing feature to ensure your server can manage expected and unexpected loads accordingly

  • Send Requests Directly to an Endpoint: You are able to immediately send a request to an endpoint OR stage a request in your workspace for multi-level testing.

  • Scripting in Swell: If you favor test-driven development, Swell allows you to write assertion tests to aid defining and testing backend API services.

  • Workspaces: Swell allows you to save workspaces for easier testing of multiple requests.

  • Preview: You can now view a rendered preview of certain API responses (HTML)

  • Collection Runner: You can also stage requests in the workspace and automate the process of sending off each one. No need to manually press send on each one; instead each request will fire off in the order of staging.

Experimental Features

  • Mock Server: Swell allows you to create your own HTTP/2 mock server to facilitate front-end development without depending on a fully built backend server.

  • tRPC: Swell includes full support for all methods of TypeScript Remote Procedure Calls including batch call support for queries and mutations.

    Calls are currently being made using Swell's own TRPCProxyClient generated from the URL provided by the user. Batch requests must be entered one request per line. Swell will treat each line of code entered into the editor as a separate request before batching and returning responses. Each request must follow the general format client.procedure.querytype(). For example:

    client.getUser.query({ name: 'Luke Skywalker' });

    See tRPC docs for more information on sending tRPC requests or setting up a tRPC server.

  • Webhooks: Swell includes user-defined HTTP callback connection testing designed to test other server's connection to the web and ability to send data. The test insures that when an event occurs, the source site makes an HTTP request to the URL configured for the webhook.

  • WebRTC: Swell makes it easy to test STUN and TURN ICE server connectivity for WebRTC applications.

    Currently, it is a read-only feature. When the write feature for ICE server is enabled, ICE server details can be entered as an array of JavaScript objects (example code block below). An RTCPeerConnection will be instantiated, as an SDP is generated.

    [
      {
        urls: 'turn:111.222.333.444:54321',
        username: 'myAwesomeUsername',
        credential: 'mySecretPassword', // or token
        credentialType: 'password',
      },
      {
        urls: 'stun:555.777.888.999:43210',
      },
    ];
  • OpenAPI: Swell supports the enumeration and execution of REST and RPC API requests as defined in a user-provided OpenAPI document.

Built With

  • Electron
  • React
  • React Router
  • Material UI
  • Redux
  • Apollo Client
  • Websockets
  • gRPC-js
  • tRPC
  • VM2
  • Chart.js
  • Bulma
  • IndexedDB
  • Chai
  • Mocha
  • Playwright

Considering iterating Swell in the future?

Feel free to check out the DEV-README.md in the docs folder.

Authors

License

This project is licensed under the MIT License

More Repositories

1

Svelvet

πŸŽ› A Svelte library for building dynamic, infinitely customizable node-based user interfaces and flowcharts
Svelte
2,540
star
2

OverVue

Prototyping Tool For Vue Devs ι€‚η”¨δΊŽVueηš„εŽŸεž‹ε·₯ε…·
Vue
2,463
star
3

Reactime

Developer tool for time travel debugging and performance monitoring in React applications.
TypeScript
2,165
star
4

PreVue

🎨 All in One Prototyping Tool For Vue Developers.
Vue
1,389
star
5

Spearmint

Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of a button.
TypeScript
1,289
star
6

SvelteStorm

SvelteStorm is an open-source IDE with a built-in Debugging window for viewing and debugging your Svelte project in real-time
Svelte
1,007
star
7

Docketeer

A Docker & Kubernetes developer tool to manage containers & visualize both cluster and container metrics
TypeScript
862
star
8

Chronos

πŸ“Š πŸ“Š πŸ“Š Monitors the health and web traffic of servers, microservices, Kubernetes/Kafka clusters, containers, and AWS services with real-time data monitoring and receive automated notifications over Slack or email.
TypeScript
829
star
9

obsidian

GraphQL, built for Deno - a native GraphQL caching client and server module
TypeScript
751
star
10

Recoilize

A Chrome Dev tool for debugging applications built with the experimental Recoil.js state management library.
TypeScript
604
star
11

SeeQR

A database analytic tool that allows developers to compare the efficiency of different schemas and queries on a granular level to make better informed architectural decisions regarding SQL databases at various scales.
TypeScript
594
star
12

Quell

Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.
TypeScript
578
star
13

vno

a build tool for compiling and bundling Vue single-file components
TypeScript
432
star
14

ReacType

Prototyping Tool for exporting React/Typescript Applications!
TypeScript
429
star
15

Chromogen

UI-driven Jest test-generation package for Recoil selectors and Zustand store hooks
TypeScript
280
star
16

dbSpy

Visualize, modify, and build your database with dbSpy! An open-source data modeling tool to facilitate relational database development.
TypeScript
263
star
17

DenoGres

Deno + PostgreSQL = DenoGres
TypeScript
212
star
18

obsidian-developer-tool

Developer tool for monitoring client cache performance for Obsidian 8.0
TypeScript
49
star
19

SeeQR-Web

A web-based database analytic tool that allows a developer to compare the efficiency of different queries on a granular level to make better informed architectural decisions regarding Postgres databases at various scales.
TypeScript
15
star
20

Sveltestorm-Website

SvelteStorm website
Svelte
10
star
21

QuellDemo

Demo for Quell written in React utilizing Material UI, chartJS, redis, and graphQL.
TypeScript
7
star
22

reactime-web

Web page for Reactime
JavaScript
6
star
23

Reactype-web

This is the ReacType Website created with Next.js and Typescript
TypeScript
5
star
24

SeeQR-Website

SeeQR's Website
TypeScript
3
star