Comments (3)
Multi-threading works. The library was written before lwt was available, so it was not considered at the time. Adding lwt support is a lot of work, because it requires rewriting everything in the continuation monad instead of the state monad. I never considered such a rewrite also because I have to support old Ubuntu distros (such as Xenial 16.04) that don't have lwt packaged. In fact, to get lwt support, you have to upgrade ocurl to at least version 0.7.0 that's available only since Bionic 18.04.
from gapi-ocaml.
re: use of threads, it looks maybe this bit of the google-ocamlfuse (and the use of this function elsewhere in the module) might be a good place to look for an example?
Yes, google-drive-ocamlfuse is the main user of gapi-ocaml, so what you see used there usually works.
from gapi-ocaml.
Thanks for the guidance and info!
I probably don't have the bandwidth to help for a rewrite either, but if I do make any progress in this direction I'll check in to see if you'd be interested.
re: support for older Ubuntu distros, we might try something like functorizing the relevant modules and then creating two different packages, as I think is done for some other libs like, e.g., aws:
aws-s3 -- Ocaml library for accessing Amazon S3
aws-s3-lwt -- Ocaml library for accessing Amazon S3 - Lwt version
re: use of threads, it looks maybe this bit of the google-ocamlfuse (and the use of this function elsewhere in the module) might be a good place to look for an example?
from gapi-ocaml.
Related Issues (20)
- Remove ocamlnet dependency HOT 2
- Timestamps ignore milliseconds HOT 1
- Resumable upload bug
- Example for doing 2-legged OAuth HOT 2
- 403 response (download quota for this file has been exceeded) not parsed correctly HOT 1
- Upload latest release to ocamlforge HOT 2
- Kubernetes API HOT 2
- Parsing HTTP header field names is done in case-sensitive fashion
- Files are kept open after uploading
- release 3.9 does not build. HOT 1
- Chunked upload doesn't work
- Error uploading files > 1GB on 32-bit systems HOT 1
- Remove Extlib dependency HOT 2
- Unclear where the `<--` operators in the monadic examples comes from HOT 1
- tag v0.3.20 is a release or a pré-release ?
- Add support for Google Sheets API v4? HOT 1
- Warning: Unexpected leaf: name=eventType data_type=Scalar in GapiCalendarV3Model.Event.parse HOT 2
- No support for yojson 2.x HOT 2
- Missing content type in POST requests
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 gapi-ocaml.