Giter Club home page Giter Club logo

mkcurl's Introduction

Measurement Kit cURL wrappers library

GitHub license Github Releases Build Status codecov Build status

This header-only library contains Measurement Kit cURL wrappers. Its main use case is vendoring of a specific tag inside Measurement Kit. Because this is just a basic building block, we do not provide any stable API guarantee for this library. For this reason, we'll never release v1.0.0.

Regenerating build files

Possibly edit MKBuild.yaml, then run:

go get -v github.com/measurement-kit/mkbuild
mkbuild

Building

mkdir build
cd build
cmake -GNinja ..
cmake --build .
ctest -a -j8 --output-on-failure

Testing with docker

./docker.sh <build-type>

mkcurl's People

Contributors

bassosimone avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

mkcurl's Issues

Allow to reuse an easy handle

We should reuse a easy handle such that we can take advantage of already established connections when submitting reports. This should ideally be implemented without breaking the existing API but instead allow one to use a easy handle.

Remove default 30 seconds timeout

Yesterday I was discussing report submission with @hellais and, as part of this discussion, it occurred to me that a default timeout of 30 s is not a good idea. Especially because, apparently, the OONI app for iOS did not set any timeout. I would assume that this was done under the assumption that not setting timeouts would imply no timeout.

(More follow-up actions stem from the above mentioned discussion, and this one is just the first and most easy that came to mind when recollecting the conversation.)

Allow to perform a connect-only request

cURL allows us to just connect to an endpoint. We need this feature to implement OONI's tcp_connect test and other tests. Additionally, cURL allows us to use the cURL handle as a socket-like abstraction that can be used to send/receive data. That would probably be helpful for http_invalid_request_line.

TBH, I am unsure whether this should be in here or in another library. While cURL can be used as the engine to implement this functionality, we're talking about a functionality that is quite far from the API exposed by this library, which is basically the classic HTTP's request and response. An API that exposes a socket like abstraction may be more proper to this end.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.