Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Curb | 1,276 | 3,666 | 580 | 3 months ago | 75 | January 04, 2023 | 25 | other | C | |
Ruby bindings for libcurl | ||||||||||
Curl Rust | 955 | 722 | 258 | 8 days ago | 95 | March 12, 2022 | 54 | mit | Rust | |
Rust bindings to libcurl | ||||||||||
Go Curl | 451 | 10 | 5 | 6 months ago | 1 | November 07, 2011 | 26 | apache-2.0 | Go | |
golang curl(libcurl) binding. | ||||||||||
Lua Curlv3 | 200 | 2 years ago | 12 | mit | C | |||||
Lua binding to libcurl | ||||||||||
Curlsharp | 143 | 6 years ago | 9 | bsd-3-clause | C# | |||||
CurlSharp - .Net binding and object-oriented wrapper for libcurl. | ||||||||||
Awesome Janet | 79 | 9 months ago | ||||||||
Curated list of awesome Janet things | ||||||||||
Ocurl | 59 | 8 months ago | 3 | mit | C | |||||
OCaml bindings to libcurl | ||||||||||
Objective Curl | 56 | 10 years ago | 1 | other | C | |||||
Curl bindings for Objective-C. | ||||||||||
Curl4delphi | 55 | 2 years ago | 11 | Pascal | ||||||
A little libcURL binding for Delphi XE2+. Supports “easy” interface only. See wiki for more documentation. | ||||||||||
Curl Java | 36 | 7 years ago | 1 | C | ||||||
Java bindings for libcurl |
CurlSharp is a .Net binding and object-oriented wrapper for libcurl.
libcurl is a web-client library that can provide cross-platform .Net applications with an easy way to implement such things as:
CurlSharp provides simple get/set properties for libcurl's options and information functions, event-based hooks to libcurl's I/O, status, and progress callbacks, and wraps the c-style file I/O behind simple filename properties. The CurlEasy
class contains has more than 100 different properties and methods to handle a wide variety of URL transfer requirements. While this may seem overwhelming at first glance, the good news is you will probably need only a tiny subset of these for most situations.
The CurlSharp library consists of these parts:
CurlEasy
class which provides a wrapper around a curl_easy
session.CurlMulti
class, which serves as a container for multiple CurlEasy objects, and provides a wrapper around a curl_multi
session.CurlShare
class which provides an infrastructure for serializing access to data shared by multiple CurlEasy
objects, including cookie data and DNS hosts. It implements the curl_share_xxx
API.CurlHttpMultiPartForm
to easily construct multi-part forms.CurlSlist
class which wraps a linked list of strings used in cURL.CurlSharp is available for these platforms:
A simple HTTP download program...
using System;
using CurlSharp;
internal class EasyGet
{
public static void Main(String[] args)
{
Curl.GlobalInit(CurlInitFlag.All);
try
{
using (var easy = new CurlEasy())
{
easy.Url = "http://www.google.com/";
easy.WriteFunction = OnWriteData;
easy.Perform();
}
}
finally
{
Curl.GlobalCleanup();
}
}
public static Int32 OnWriteData(byte[] buf, Int32 size, Int32 nmemb, object data)
{
Console.Write(Encoding.UTF8.GetString(buf));
return size*nmemb;
}
}
Simple HTTP Post example:
using (var easy = new CurlEasy())
{
easy.Url = "http://hostname/testpost.php";
easy.Post = true;
var postData = "parm1=12345&parm2=Hello+world%21";
easy.PostFields = postData;
easy.PostFieldSize = postData.Length;
easy.Perform();
}
HTTP/2.0 download:
using (var easy = new CurlEasy())
{
easy.Url = "https://google.com/";
easy.WriteFunction = OnWriteData;
// HTTP/2 please
easy.HttpVersion = CurlHttpVersion.Http2_0;
// skip SSL verification during debugging
easy.SslVerifyPeer = false;
easy.SslVerifyhost = false;
easy.Perform();
}
More samples are included in the Samples folder.
CurlSharp Written by Dr. Masroor Ehsan.
CurlSharp is based on original code by Jeff Phillips libcurl.NET. Original code has been modified and greatly enhanced.
CurlSharp Copyright © 2013-17 Dr. Masroor Ehsan