Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/RohitAwate/Everest
A beautiful, cross-platform REST client.
https://github.com/RohitAwate/Everest
cross-platform desktop-app everest java javafx native-apps rest-client summit
Last synced: 3 months ago
JSON representation
A beautiful, cross-platform REST client.
- Host: GitHub
- URL: https://github.com/RohitAwate/Everest
- Owner: RohitAwate
- License: apache-2.0
- Created: 2018-01-18T15:29:55.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-11-16T09:36:41.000Z (almost 2 years ago)
- Last Synced: 2024-02-14T18:33:27.894Z (9 months ago)
- Topics: cross-platform, desktop-app, everest, java, javafx, native-apps, rest-client, summit
- Language: Java
- Homepage:
- Size: 1.02 MB
- Stars: 820
- Watchers: 40
- Forks: 106
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![everestheader](https://user-images.githubusercontent.com/23148259/39124644-c886b47a-4719-11e8-953c-f079b3edb664.png)
Everest _(formerly RESTaurant)_ is an upcoming REST API testing client written in JavaFX.
![home](https://user-images.githubusercontent.com/23148259/45769743-23e5a380-bc5e-11e8-9e45-5ea50342c19f.PNG)
_Everest running on Windows 10._
# Why Everest?
- Everest is written in Java. Thus, it is significantly **lighter on resources and more responsive** than its Electron-based alternatives like _Postman_. It aims to provide the same level of functionality in a lighter, native but equally slick package.
- Aesthetic is very important. With a **gorgeous, flat design**, Everest is a pleasure to look at and to work with. It is also entirely theme-_able_.> I want you to want to use it!
- Being a Java application, Everest is inherently **cross-platform**. It will run anywhere there's a JVM.
- Everest will offer cloud synchronization of your projects powered by [Summit](https://github.com/RohitAwate/Summit). It will be available as a cloud service early next year or you may also choose to self-host it.# Live Features 🔥
#### All of the most common requests
GET, POST, PUT, DELETE and PATCH requests. HEAD and OPTIONS coming soon.#### Comprehensive Request Builder
- Add request headers.
- Append query parameters. _(with live preview)_
- **Syntax highlighting** for JSON and XML, powered by [RichTextFX](https://github.com/FXMisc/RichTextFX).
- Quickly add key-value pairs for URL-encoded and multipart-form bodies.
#### View Response Details
- HTTP status code, content type, elapsed time, body size.
- **Visualizer** to view JSON responses graphically. _(Aesthetic improvements coming with Alpha 1.4)_
- View response headers.![get](https://user-images.githubusercontent.com/23148259/45769777-3c55be00-bc5e-11e8-9fbc-c8bf93b7dc5d.gif)
_Making a GET request with Everest._#### API Authentication
- Basic Auth
- Digest Auth#### Custom Themes
Everest is entirely theme-_able_ via CSS. For more details, refer [this guide](THEMES.md).#### Efficient multi-tabbing
Everest utilizes a technique called _pseudo tab-switching_ to maintain a low memory footprint even when heavy multi-tabbing. I have written a highly technical piece about this on my [dev.to](https://dev.to/rohit)._**Bonus**: The '+' button for adding new tabs is finally live!_
#### History
Everest maintains the history of all the requests made by you. You can search with any of the request's components: the target, the headers, the method, the body or even the files added to the request. Everest will **intelligently rank** the results based on their relevance.![history](https://user-images.githubusercontent.com/23148259/45769890-8a6ac180-bc5e-11e8-8f5e-6704eb0e9aa1.gif)
_Everest's search feature in action._
# Upcoming features ⏳
#### OAuth Support
Everest will fully support both of the OAuth standards. Work on **OAuth 2.0 is in progress** right now and will be available with Alpha 1.4. OAuth 1.0 will follow next.#### Everest Project
- This will be Everest's equivalent of Postman's Collection or Insomnia's Workspace.
- Will house **named-requests**.
- Will support **environment variables**. Every request can have its own.
- Can be exported/imported.#### Summit
![summitheader](https://user-images.githubusercontent.com/23148259/45769968-cbfb6c80-bc5e-11e8-95c7-7d418dee54d5.png)
- [Summit](https://github.com/RohitAwate/Summit) is the synchronization server for Everest.
- It will allow for synchronization of your Everest Projects across multiple devices and other members of your team.
- It will use a Node.js-_powered_ RESTful API and Socket.IO.
- It will be available early next year as a service. You may also choose to self-host Summit.#### Extension API
This will allow developers to create extensions for Everest which can for example, sync to Google Drive, or visualize the response bodies in a certain fashion or summon Batman.#### Mock Server
This local server can be used to quickly create a mock REST-_ful_ service with the endpoints of your choice, producing the output of your choice.# Keymap ⌨️
| Shortcut | Task |
|--------------|--------------------------|
| Ctrl + T | New Tab |
| Ctrl + W | Close tab |
| Ctrl + H | Toggle History |
| Ctrl + Enter | Send request |
| Ctrl + L | Focus address bar |
| Ctrl + M | Select HTTP method |
| Ctrl + F | Focus history search bar |
| Alt + P | Focus Query Params tab |
| Alt + A | Focus Authentication tab |
| Alt + H | Focus Headers tab |
| Alt + B | Focus Body tab |# Releases 🚀
Everest is under active development and you can get the latest alpha build from [Releases](https://github.com/RohitAwate/Everest/releases). Make sure you read the release notes to understand what works and what doesn't, how to report issues and how to run the binary.# Building from source 🔨
Everest uses Maven, so building from the source code is very simple. You need to have a minimum of JDK 8 (9 should also work) installed, along with Maven and Git. If you're using OpenJDK, you will need to install OpenJFX separately. Once you have everything set up, follow these simple steps:
1. Clone the repository: `git clone https://github.com/RohitAwate/Everest.git`
2. Enter the repository: `cd Everest`
3. Build a binary: `mvn package`
4. Run the binary: `mvn exec:java`**For JDK 10 and above:** JavaFX has been decoupled from the JDK and will need to be installed separately.
# License ⚖️
Everest is licensed under the [Apache 2.0 License](LICENSE).# Suggestions and improvements
Use these options to reach me:
- Open a GitHub issue.
- Email me at [email protected].
- Tweet me [@TheRohitAwate](https://twitter.com/TheRohitAwate).