[GH-ISSUE #267] [request] Offline cross-platform native build #91

Closed
opened 2026-03-16 13:21:17 +03:00 by kerem · 34 comments
Owner

Originally created by @liyasthomas on GitHub (Nov 5, 2019).
Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/267

Originally assigned to: @AndrewBastin, @NBTX on GitHub.

Is your feature request related to a problem? Please describe.
Apart from the postwoman.io online web client, make an offline build.

Describe the solution you'd like
We can create an installable proxy server so users can install it on their OS.
It should be lightweight and easy to install. A proxy just like that we have now but install on the user locally.

Describe alternatives you've considered
Electron, Ionic, Meteor (but don't use any of these).

Additional context
The benefits:

  • Solve cors, mixed content and all problems cause by browser
  • Because the proxy is on the user local, they feel more safety
  • Solve the problems with testing localhost api's
  • We don't need a proxy server(costs)
Originally created by @liyasthomas on GitHub (Nov 5, 2019). Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/267 Originally assigned to: @AndrewBastin, @NBTX on GitHub. **Is your feature request related to a problem? Please describe.** Apart from the postwoman.io online web client, make an offline build. **Describe the solution you'd like** We can create an installable proxy server so users can install it on their OS. It should be lightweight and easy to install. A proxy just like that we have now but install on the user locally. **Describe alternatives you've considered** Electron, Ionic, Meteor (but don't use any of these). **Additional context** The benefits: - Solve cors, mixed content and all problems cause by browser - Because the proxy is on the user local, they feel more safety - Solve the problems with testing localhost api's - We don't need a proxy server(costs)
kerem 2026-03-16 13:21:17 +03:00
Author
Owner

@hosseinnedaee commented on GitHub (Nov 5, 2019):

Wow, such a good idea!

<!-- gh-comment-id:549828983 --> @hosseinnedaee commented on GitHub (Nov 5, 2019): Wow, such a good idea!
Author
Owner

@arangates commented on GitHub (Nov 19, 2019):

also it would be awesome if we start as vscode extension directly
https://github.com/liyasthomas/postwoman/issues/313

<!-- gh-comment-id:555435375 --> @arangates commented on GitHub (Nov 19, 2019): also it would be awesome if we start as vscode extension directly https://github.com/liyasthomas/postwoman/issues/313
Author
Owner

@orthros commented on GitHub (Nov 20, 2019):

I started with Postwoman today and have been very impressed!

I recognize this might be out of scope for this Issue, but for further thinking and context:

I'm currently running the application in a container on my host, and accessing it through the browser; it would be great if the proxy could be bundled into the application itself (possibly a different Docker image that contains both it and the application), or if the proxy could be distributed separately and then patched in with a --net directive to docker run and a flag to the app with the address of the proxy.

<!-- gh-comment-id:555798143 --> @orthros commented on GitHub (Nov 20, 2019): I started with Postwoman today and have been very impressed! I recognize this might be out of scope for this Issue, but for further thinking and context: I'm currently running the application in a container on my host, and accessing it through the browser; it would be great if the proxy could be bundled into the application itself (possibly a different Docker image that contains both it and the application), or if the proxy could be distributed separately and then patched in with a `--net` directive to `docker run` and a flag to the app with the address of the proxy.
Author
Owner

@liyasthomas commented on GitHub (Nov 20, 2019):

@orthros We can certainly do that. Would you like to contribute to this Proxy setup along with @NBTX .

We've Telegram and Discord community for discussion. Links are in readme.

<!-- gh-comment-id:555799095 --> @liyasthomas commented on GitHub (Nov 20, 2019): @orthros We can certainly do that. Would you like to contribute to this Proxy setup along with @NBTX . We've Telegram and Discord community for discussion. Links are in readme.
Author
Owner

@orthros commented on GitHub (Nov 25, 2019):

I would be glad to contribute! I'll swing by the Discord 👍

<!-- gh-comment-id:558240627 --> @orthros commented on GitHub (Nov 25, 2019): I would be glad to contribute! I'll swing by the Discord 👍
Author
Owner

@NBTX commented on GitHub (Nov 26, 2019):

Perhaps if this is a discussion about making the proxy, rather than the interface a native application (which I believe is ideal), we should transfer the issue to the postwoman-proxy repository?

<!-- gh-comment-id:558669472 --> @NBTX commented on GitHub (Nov 26, 2019): Perhaps if this is a discussion about making the proxy, rather than the interface a native application (which I believe is ideal), we should transfer the issue to the [postwoman-proxy](https://github.com/NBTX/postwoman-proxy/) repository?
Author
Owner

@liyasthomas commented on GitHub (Nov 26, 2019):

This issue is intended to track offline build progress. Better take concerns regarding Proxy to https://github.com/NBTX/postwoman-proxy/

<!-- gh-comment-id:558670416 --> @liyasthomas commented on GitHub (Nov 26, 2019): This issue is intended to track offline build progress. Better take concerns regarding Proxy to https://github.com/NBTX/postwoman-proxy/
Author
Owner

@NBTX commented on GitHub (Nov 28, 2019):

@liyasthomas Indeed but is the plan to make the application or the proxy a native standalone application?
As Postwoman is a PWA the interface itself can already run offline - I thought the discussion was about making the proxy native.

<!-- gh-comment-id:559580157 --> @NBTX commented on GitHub (Nov 28, 2019): @liyasthomas Indeed but is the plan to make the application or the proxy a native standalone application? As Postwoman is a PWA the interface itself can already run offline - I thought the discussion was about making the proxy native.
Author
Owner

@liyasthomas commented on GitHub (Nov 28, 2019):

@NBTX even though being a PWA make it runs offline, we're missing out the possibilities of testing APIs in localhost which could only be fixed by a local server setup. So, a native wrapper for the very PWA seems essential while considering localhost support.

<!-- gh-comment-id:559611572 --> @liyasthomas commented on GitHub (Nov 28, 2019): @NBTX even though being a PWA make it runs offline, we're missing out the possibilities of testing APIs in `localhost` which could only be fixed by a local server setup. So, a native wrapper for the very PWA seems essential while considering `localhost` support.
Author
Owner

@NBTX commented on GitHub (Nov 29, 2019):

@liyasthomas If the proxy is running locally and you enter that proxy into the Postwoman PWA, you will be able to make local requests because the requests will be executed by the proxy - which is running locally - meaning a native wrapper for the entire PWA is not actually necessary.

<!-- gh-comment-id:559625233 --> @NBTX commented on GitHub (Nov 29, 2019): @liyasthomas If the proxy is running locally and you enter that proxy into the Postwoman PWA, you will be able to make local requests because the requests will be executed by the proxy - which is running locally - meaning a native wrapper for the entire PWA is not actually necessary.
Author
Owner

@liyasthomas commented on GitHub (Nov 29, 2019):

Wow, that is correct. Let's take the discuss over to the group.

<!-- gh-comment-id:559632933 --> @liyasthomas commented on GitHub (Nov 29, 2019): Wow, that is correct. Let's take the discuss over to the group.
Author
Owner

@AndrewBastin commented on GitHub (Nov 30, 2019):

Is this issue thread for a native proxy or for native Postwoman (like Postwoman but as a native app) ?

@liyasthomas the title seems a bit ambiguous.

<!-- gh-comment-id:559905856 --> @AndrewBastin commented on GitHub (Nov 30, 2019): Is this issue thread for a native proxy or for native Postwoman (like Postwoman but as a native app) ? @liyasthomas the title seems a bit ambiguous.
Author
Owner

@liyasthomas commented on GitHub (Nov 30, 2019):

Proxy wrapper discuss could be done on @NBTX repo https://github.com/NBTX/postwoman-proxy/

This thread is for offline native build.

<!-- gh-comment-id:559906018 --> @liyasthomas commented on GitHub (Nov 30, 2019): Proxy wrapper discuss could be done on @NBTX repo https://github.com/NBTX/postwoman-proxy/ This thread is for offline native build.
Author
Owner

@AndrewBastin commented on GitHub (Nov 30, 2019):

Okay then,

Can I get assigned for this as I am already working on it.

<!-- gh-comment-id:559906322 --> @AndrewBastin commented on GitHub (Nov 30, 2019): Okay then, Can I get assigned for this as I am already working on it.
Author
Owner

@andreujuanc commented on GitHub (Nov 30, 2019):

Hey @liyasthomas few days ago I found this on my twitter feed.
https://github.com/SteveSandersonMS/WebWindow

It's like cordova, but for desktop apps. So, instead of embeding chrome+node, it uses the local web engine of the OS, which reduces the size considerably.

It's super pre-alpha stuff, BUT, it might be worth a try.

Vscode extension is also cool, but not everyone is using it, some people prefer atom, or vim

<!-- gh-comment-id:560005609 --> @andreujuanc commented on GitHub (Nov 30, 2019): Hey @liyasthomas few days ago I found this on my twitter feed. https://github.com/SteveSandersonMS/WebWindow It's like cordova, but for desktop apps. So, instead of embeding chrome+node, it uses the local web engine of the OS, which reduces the size considerably. It's super pre-alpha stuff, BUT, it might be worth a try. Vscode extension is also cool, but not everyone is using it, some people prefer atom, ~~or vim~~
Author
Owner

@AndrewBastin commented on GitHub (Nov 30, 2019):

@andreujuanc Thanks for the info on WebWindow, I am keeping an eye on it's development.

I already have some stuff going around regarding native wrapper which I will release once it gets more stable, we are kinda waiting for more enhanced support for IE before releasing the native builds.

Also, the strikeout on vim, dude, I am a vim user, working on Postwoman with Vim 😂

<!-- gh-comment-id:560016736 --> @AndrewBastin commented on GitHub (Nov 30, 2019): @andreujuanc Thanks for the info on WebWindow, I am keeping an eye on it's development. I already have some stuff going around regarding native wrapper which I will release once it gets more stable, we are kinda waiting for more enhanced support for IE before releasing the native builds. Also, the strikeout on vim, dude, I am a vim user, working on Postwoman with Vim 😂
Author
Owner

@liyasthomas commented on GitHub (Dec 5, 2019):

Important announcement:
@AndrewBastin will be leading this issue.
Please contact him for latest updates.

<!-- gh-comment-id:562067264 --> @liyasthomas commented on GitHub (Dec 5, 2019): **Important announcement:** @AndrewBastin will be leading this issue. Please contact him for latest updates.
Author
Owner

@AndrewBastin commented on GitHub (Dec 5, 2019):

My status as of today:

I have a native wrapper solution in the works, but in order for it to be stable on Windows, we need to iron out the issues we are facing with IE Support (see #386). Once that issue is closed, I will iron out the native code, integrate it with the postwoman mono-repo (integrate it with the npm scripts and so on) and open a draft PR so the community can help me around with testing and ironing out bugs until we hit production stable, after which we will merge with this repo.

<!-- gh-comment-id:562296258 --> @AndrewBastin commented on GitHub (Dec 5, 2019): My status as of today: I have a native wrapper solution in the works, but in order for it to be stable on Windows, we need to iron out the issues we are facing with IE Support (see #386). Once that issue is closed, I will iron out the native code, integrate it with the postwoman mono-repo (integrate it with the npm scripts and so on) and open a draft PR so the community can help me around with testing and ironing out bugs until we hit production stable, after which we will merge with this repo.
Author
Owner

@liyasthomas commented on GitHub (Dec 5, 2019):

Status on IE support:
Transpiled build throws out errors on vendor.js and is quite difficult to track down which part is misbehaving. Currently trying out with older versions of IE.

<!-- gh-comment-id:562355076 --> @liyasthomas commented on GitHub (Dec 5, 2019): Status on IE support: Transpiled build throws out errors on vendor.js and is quite difficult to track down which part is misbehaving. Currently trying out with older versions of IE.
Author
Owner

@andreujuanc commented on GitHub (Dec 6, 2019):

It'd be nice if in this native xplat build we can have the httpclient being build outside of the browser, so this way we can remove the "origin" header, and this way get rid of any CORS config issues :)

<!-- gh-comment-id:562571004 --> @andreujuanc commented on GitHub (Dec 6, 2019): It'd be nice if in this native xplat build we can have the httpclient being build outside of the browser, so this way we can remove the "origin" header, and this way get rid of any CORS config issues :)
Author
Owner

@liyasthomas commented on GitHub (Dec 6, 2019):

Temporarily, you can make use of Proxy mode to resolve CORS issues.

<!-- gh-comment-id:562583351 --> @liyasthomas commented on GitHub (Dec 6, 2019): Temporarily, you can make use of Proxy mode to resolve CORS issues.
Author
Owner

@AndrewBastin commented on GitHub (Dec 9, 2019):

@andreujuanc Yeah, the native wrapper will offer an interface to the Postwoman app to run requests natively rather than through the browser

<!-- gh-comment-id:563338234 --> @AndrewBastin commented on GitHub (Dec 9, 2019): @andreujuanc Yeah, the native wrapper will offer an interface to the Postwoman app to run requests natively rather than through the browser
Author
Owner

@eladcandroid commented on GitHub (Dec 15, 2019):

Maybe Homebrew Formulae?
https://formulae.brew.sh/

<!-- gh-comment-id:565795666 --> @eladcandroid commented on GitHub (Dec 15, 2019): Maybe Homebrew Formulae? https://formulae.brew.sh/
Author
Owner

@liudonghua123 commented on GitHub (Dec 20, 2019):

I think it maybe more experience friendly via wrap it with pwa or electron to provide smooth and quickly usage.

<!-- gh-comment-id:567783407 --> @liudonghua123 commented on GitHub (Dec 20, 2019): I think it maybe more experience friendly via wrap it with `pwa` or `electron` to provide smooth and quickly usage.
Author
Owner

@NBTX commented on GitHub (Dec 20, 2019):

We can't use electron; it's too bulky - and Postwoman is already a PWA - PWAs don't let you get around CORS restrictions which is why we were considering a native build.

The solution we're working on at the moment is to build a proxy server that you can install on your local machine and then use with the postwoman PWA or website.
https://github.com/liyasthomas/postwoman/pull/445
https://github.com/postwoman-io/postwoman-proxy
image

<!-- gh-comment-id:567904336 --> @NBTX commented on GitHub (Dec 20, 2019): We can't use `electron`; it's too bulky - and Postwoman is already a PWA - PWAs don't let you get around CORS restrictions which is why we were considering a native build. The solution we're working on at the moment is to build a proxy server that you can install on your local machine and then use with the postwoman PWA or website. https://github.com/liyasthomas/postwoman/pull/445 https://github.com/postwoman-io/postwoman-proxy ![image](https://user-images.githubusercontent.com/43181178/71254147-f6d0e680-2321-11ea-960d-da3492d4d269.png)
Author
Owner

@axelburks commented on GitHub (Jan 4, 2020):

What about on iOS? I have found for api test tools on iOS for long time and finally found postwoman. But it have to use with proxy because CORS. Not every one have a server to run proxy.
So I wonder could postwoman support http/socks proxy? Now many vpn apps on iOS support open a socks and http proxy on localhost(usually can access them with "http://127.0.0.1:8888" or "socks://127.0.0.1:8889"), and postwoman can use it to resolve CORS on iOS.
Or you can build a native iOS app, it will be popular for many developers.
We really have found a postman-like api testing tool on iOS for so long time.

<!-- gh-comment-id:570751732 --> @axelburks commented on GitHub (Jan 4, 2020): What about on iOS? I have found for api test tools on iOS for long time and finally found postwoman. But it have to use with proxy because CORS. Not every one have a server to run proxy. So I wonder could postwoman support http/socks proxy? Now many vpn apps on iOS support open a socks and http proxy on localhost(usually can access them with "http://127.0.0.1:8888" or "socks://127.0.0.1:8889"), and postwoman can use it to resolve CORS on iOS. Or you can build a native iOS app, it will be popular for many developers. We really have found a postman-like api testing tool on iOS for so long time.
Author
Owner

@liyasthomas commented on GitHub (Jan 4, 2020):

We do really want it! @NBTX @AndrewBastin

<!-- gh-comment-id:570752153 --> @liyasthomas commented on GitHub (Jan 4, 2020): We do really want it! @NBTX @AndrewBastin
Author
Owner

@AndrewBastin commented on GitHub (Jan 6, 2020):

Well, I am just back from my holidays. Still catching up on the project.

@axelburks that's an awesome idea actually, and technically it isn't really difficult and it really aligns with the framework in my head for native stuff. So I am pretty sure we could get it absolutely rolling once we figure out getting native rolled out.

<!-- gh-comment-id:570996082 --> @AndrewBastin commented on GitHub (Jan 6, 2020): Well, I am just back from my holidays. Still catching up on the project. @axelburks that's an awesome idea actually, and technically it isn't really difficult and it really aligns with the framework in my head for native stuff. So I am pretty sure we could get it absolutely rolling once we figure out getting native rolled out.
Author
Owner

@axelburks commented on GitHub (Jan 6, 2020):

We developers have to always use vpn in China, please please consider that condition🤕🙏

<!-- gh-comment-id:570997827 --> @axelburks commented on GitHub (Jan 6, 2020): We developers have to always use vpn in China, please please consider that condition🤕🙏
Author
Owner

@AndrewBastin commented on GitHub (Jan 6, 2020):

@axelburks I am kinda working on a system for making Postwoman work using the native platform http code instead of the browser one, so stuff like CORS won't matter and since its the platform http client, it will respect the platform integrations like VPNs and stuff out of the box 😄

<!-- gh-comment-id:570998219 --> @AndrewBastin commented on GitHub (Jan 6, 2020): @axelburks I am kinda working on a system for making Postwoman work using the native platform http code instead of the browser one, so stuff like CORS won't matter and since its the platform http client, it will respect the platform integrations like VPNs and stuff out of the box :smile:
Author
Owner

@AndrewBastin commented on GitHub (Mar 9, 2020):

Since this is a big feature request and there hasn't been a big talk about this. I just want to revive the discussion.

Basing on @liyasthomas 's main ideas behind creating Postwoman, we have taken certain decisions on how a native postwoman app should work.

  • So as Liyas described in the issue, we are completely against using Electron for the native app implementation.

  • But still, we are a Vue web app and we want to leverage all the features and would like to use the same codebase and not roll out a completely separate implementation.

  • We have a current plan to use native webviews to render Postwoman, this works flawlessly for Linux and macOS (minus tiny native webview wrapper leaks and bugs) but Windows offers IE as the native webview (atleast in older versions and on older builds of Win10), Postwoman doesn't render on IE and we dropped the plan to support IE as well because of it being too 'hacky' to implement without disturbing existing code and to implement it without introducing too much issues.

In my opinion, I don't think Postwoman is in need of a Native App soon. Since we do now support cross-origin requests through Browser Extensions. In my experience, extension + PWA really fills the gap for a native app. It is fast, lightweight enough and works flawlessly.

Although, we could discuss about mobile apps to be implemented as browser extensions aren't really popular on mobile devices. And since both iOS and Android use WebKit webviews, we are fine with all the rendering stuff, we just need to work on the native hook.

If there is a demand for mobile apps of Postwoman, please do comment on it here.

Any thoughts ?

<!-- gh-comment-id:596667946 --> @AndrewBastin commented on GitHub (Mar 9, 2020): Since this is a big feature request and there hasn't been a big talk about this. I just want to revive the discussion. Basing on @liyasthomas 's [main ideas](https://dev.to/liyasthomas/i-created-postwoman-an-online-open-source-api-request-builder-41md) behind creating Postwoman, we have taken certain decisions on how a native postwoman app should work. * So as Liyas described in the issue, we are completely against using Electron for the native app implementation. * But still, we are a Vue web app and we want to leverage all the features and would like to use the same codebase and not roll out a completely separate implementation. * We have a current plan to use native webviews to render Postwoman, this works flawlessly for Linux and macOS (minus tiny native webview wrapper leaks and bugs) but Windows offers IE as the native webview (atleast in older versions and on older builds of Win10), Postwoman doesn't render on IE and we dropped the plan to support IE as well because of it being too 'hacky' to implement without disturbing existing code and to implement it without introducing too much issues. In my opinion, I don't think Postwoman is in need of a Native App soon. Since we do now support cross-origin requests through Browser Extensions. In my experience, extension + PWA really fills the gap for a native app. It is fast, lightweight enough and works flawlessly. Although, we could discuss about mobile apps to be implemented as browser extensions aren't really popular on mobile devices. And since both iOS and Android use WebKit webviews, we are fine with all the rendering stuff, we just need to work on the native hook. If there is a demand for mobile apps of Postwoman, please do comment on it here. Any thoughts ?
Author
Owner

@liyasthomas commented on GitHub (Mar 9, 2020):

I second @AndrewBastin
The very request for Native build came from the necessity for localhost support, CORS issues etc. Since most of them are solved with extension, I think there's no more need for a native build.

<!-- gh-comment-id:596674459 --> @liyasthomas commented on GitHub (Mar 9, 2020): I second @AndrewBastin The very request for Native build came from the necessity for `localhost` support, `CORS` issues etc. Since most of them are solved with extension, I think there's no more need for a native build.
Author
Owner

@NBTX commented on GitHub (Mar 9, 2020):

@AndrewBastin For Windows we can now consider WebView2 SDK (based on the Chromium Edge rendering engine) - At the moment it requires Chromium Edge to be installed along with the WebView2 SDK, however I believe in future the requirement will be only the Chromium Edge browser and I imagine it will be provided in Windows by default.

It's currently in a developer alpha preview, but we can start experimenting now and release an implementation when the WebView2 code hits beta.

https://docs.microsoft.com/en-us/microsoft-edge/hosting/webview2

<!-- gh-comment-id:596745503 --> @NBTX commented on GitHub (Mar 9, 2020): @AndrewBastin For Windows we can now consider WebView2 SDK (based on the Chromium Edge rendering engine) - _At the moment it requires Chromium Edge to be installed along with the WebView2 SDK, however I believe in future the requirement will be only the Chromium Edge browser and I imagine it will be provided in Windows by default_. It's currently in a developer alpha preview, but we can start experimenting now and release an implementation when the WebView2 code hits beta. https://docs.microsoft.com/en-us/microsoft-edge/hosting/webview2
Author
Owner

@liyasthomas commented on GitHub (Mar 11, 2020):

Since there's no activity towars this feature request, I think we could close this issue. After all Postwoman PWA + Browser extension could fill the gap for a native wrapper for PW.

<!-- gh-comment-id:597421558 --> @liyasthomas commented on GitHub (Mar 11, 2020): Since there's no activity towars this feature request, I think we could close this issue. After all Postwoman PWA + Browser extension could fill the gap for a native wrapper for PW.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hoppscotch#91
No description provided.