curl-crystal
Version, currently 0.1.33 versions
- 0.1.3latestSep 28, 2019
- 0.1.2not indexedApr 12, 2020
- 0.1.0not indexedApr 12, 2020
github.com/blocknotes/curl-crystal
Crystal C bindings for libcurl
16 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
curl-crystal:
github: blocknotes/curl-crystal
version: ~> 0.1.3Then run:
shards installshard.yml
- Crystal
0.31.0- License
- MIT
- Author
- Mattia Roccoberton <mat@blocknot.es>
Dependencies
This version declares no dependencies.
README
# libcurl for Crystal [](https://travis-ci.org/blocknotes/curl-crystal)
Crystal C bindings for libcurl, the multiprotocol file transfer library - see [libcurl](https://curl.haxx.se/libcurl/)
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
curl-crystal:
github: blocknotes/curl-crystal
```
## Usage
CURL version:
```ruby
require "curl-crystal"
puts String.new LibCurl.curl_version
```
Fetch an URL an print the content to the STDOUT:
```ruby
require "curl-crystal"
curl = LibCurl.curl_easy_init # init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "https://www.google.com" # set URL
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_FOLLOWLOCATION, 1 # follow redirect
LibCurl.curl_easy_perform curl # run
LibCurl.curl_easy_cleanup curl # deinit
```
Simple POST request:
```ruby
require "curl-crystal"
curl = LibCurl.curl_easy_init # init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "http://localhost"
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_POSTFIELDS, "param1=Just+a+test¶m2=12.345"
LibCurl.curl_easy_perform curl # run
LibCurl.curl_easy_cleanup curl # deinit
```
Invalid URL error:
```ruby
require "curl-crystal"
curl = LibCurl.curl_easy_init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "https://aaa.bbb.ccc.ddd"
ret = LibCurl.curl_easy_perform curl # CURLE_COULDNT_RESOLVE_HOST
puts ret.to_s + ": " + String.new( LibCurl.curl_easy_strerror( ret ) )
LibCurl.curl_easy_cleanup curl
```
## More examples
- [examples](https://github.com/blocknotes/curl-crystal/tree/master/examples) folder
- libcurl C [examples](https://curl.haxx.se/libcurl/c/example.html)
## Notes
Base on curl version: **7.52.1**
## Contributors
- [Mattia Roccoberton](http://blocknot.es) - creator, maintainer, Crystal fan :)
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.3- Tagged
- Sep 28, 2019
- Commit
41db693879ed- Crystal
0.31.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/blocknotes/curl-crystal
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 13, 2026
- Synced
- Aug 13, 2026
- Versions
- 3