Comments (5)
from gpsbabel.
I think Webassembly is not mature enough to dive into it right now (for me at least).
I'll try to explain the use-case which I think is currently missed out right now:
I have a site, the site runs cross platform code such as dotnet core, java etc.
The site uses the services of GPSBabel executable.
Now if I need to deploy the site on different OSs I need to make sure that GPSBabel is compiled for the relevant OS and deploy it prior to deploying my site or pack it with my site for deployment which will create a non cross-platform package.
In order to avoid this complexity people had started to adopt Docker, which handles most of this stuff out of the box.
In our particular case I can create a docker image which compiles the GPSBabel to a specific platform and group multiple images to support the concept of cross platform image.
This however brings a new "problem": in order to run this cross platform image I need to know that it runs from docker and use docker specific command line arguments - which is not ideal in terms of decoupling.
So, in order not to know which hosting framework is hosting GPSBabel, a web API can be used to remove the docker specific arguments (HTTP rest is a standard and not specific).
The concept of micro services and exposing GPSBabel capabilities through web API (locally) does not break, IMO, the concept of GPSBabel, but only enhance it.
The above example of gpsvisualizer is an non reusable example as I need a browser to interact with GPSBabel and I can't do it using a simple HTTPClient, and the concept of a micros service does not mean it is exposed to the web, just exposed locally on the server that is running the site.
I have written yesterday a small NodeJs web-api that exposed some of the functionalities of GPBBabel to a HTTPClient (which exists in any language). NodeJS in theory is already cross platform and If I'll be able to make a docker image that is cross platform to run this web-api all you'll need to do in order to use GPSBabel is install docker and run this image.
In terms of deployment I think it's a great advantage as you don't need to manually download assemblies that are specific to an OS but rather just install Docker.
I'd be happy to share my code if you'd like.
Maybe it shouldn't be a part of GPSBabel's "core" but a side project/repository in this Github organization.
from gpsbabel.
@tsteven4 I saw you are working on something with docker, I would be happy to compare notes.
I'm trying to create a cross platform docker image that will contain a HTTP server and gpsbabel executable.
I decided to update a NuGet package I'm using (IsraelHiking.GPSBabel) to contain both Linux (Debian) and Windows gpsbabel files necessary for runtime but I think I'll need a statically compiled gpsbabel version and I'm struggling to create one, any help would be appreciated (adding -static flag cause compilation error since, I think, Qt5 static libraris are not mapped).
Most of the code is already written here if anyone is interested in looking at it:
https://github.com/IsraelHikingMap/GPSBabelWebAPI
from gpsbabel.
Closing. User has providined their own solution and offered it for others, so we'll leave this here.
from gpsbabel.
For anyone finding this:
I have created a small docker image that wraps GPSBabel in a http server to facilitate micro-services architecture that is based on HTTP and can be distributed.
the image is here:
https://hub.docker.com/r/israelhikingmap/gpsbabelwebapi
It's not cross platform as I don't think someone is using docker windows images nowadays...
from gpsbabel.
Related Issues (20)
- trackfilter pack handling of segments HOT 5
- :error:fetch Failed to fetch curl-ca-bundle: The requested URL returned error: 404 Not Found HOT 6
- truncation can compromise the meaning of help strings HOT 2
- garmin_fit does not support course_point types well HOT 4
- www.gpsbabel.org doesn't contain a link to github page HOT 3
- garminextensions option (-o gpx,...) removes <speed> from output file HOT 2
- 1.9.0 GUI pop up "Invalid return data at line 1 ..." HOT 3
- gpx writer may violate schema HOT 1
- gpx writer can violate schema when extensions exist, gpx read and write versions differ, and passthrough is used. HOT 1
- gpx.h GEOTAG searches for elements that imply a gpx schema violation HOT 9
- C++20? HOT 12
- jeeps bug? HOT 2
- GPS serial memory leak? HOT 2
- Broken link to Entire Manual as PDF HOT 4
- garmin gpi corruption of bitmap color data for bitmaps with 24 bits per pixel. HOT 1
- erroneous garmin gpi warning when writing with a 24 or 32 bits per pixel bitmap HOT 1
- Please restore compegps format HOT 1
- Doc: inaccurate statement regarding GDAL
- Is there somewhere to download old exe files? HOT 2
- Exporting as GPX always fills "<cmt>" and "<desc>" even if not existent in the source file HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gpsbabel.