{"id":1054,"date":"2009-09-22T00:23:46","date_gmt":"2009-09-21T22:23:46","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=1054"},"modified":"2009-09-22T14:53:33","modified_gmt":"2009-09-22T12:53:33","slug":"libcurl-in-version-management","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2009\/09\/22\/libcurl-in-version-management\/","title":{"rendered":"libcurl in version management"},"content":{"rendered":"<p>Already before, I&#8217;ve mentioned that <a href=\"http:\/\/curl.haxx.se\/libcurl\/\">libcurl <\/a>is becoming popular within <a href=\"http:\/\/daniel.haxx.se\/blog\/2009\/08\/07\/libcurl-in-package-management\/\">package management<\/a>.<\/p>\n<p><a href=\"http:\/\/curl.haxx.se\/libcurl\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-108\" style=\"margin: 8px;\" title=\"libcurl\" src=\"http:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2007\/09\/ds-libcurlicon.png\" alt=\"libcurl\" width=\"99\" height=\"37\" \/>libcurl <\/a>is a generic library for file transfers over a wide variety of protocols. Over the years, some of the recent ditributed version management softwares have learned about libcurl&#8217;s powers and they now use it:<\/p>\n<p><a href=\"http:\/\/darcs.net\/\">darcs <\/a>&#8211; was born in 2003 and is written in <a href=\"http:\/\/www.haskell.org\/\">Haskell<\/a>. I&#8217;m under the impression these guys wrote their own binding layer to interface libcurl from Haskell.<\/p>\n<p><a href=\"http:\/\/git-scm.com\/\">git <\/a>&#8211; possibly best known for being created by <a href=\"http:\/\/en.wikipedia.org\/wiki\/Linus_Torvalds\">Linus Torvalds <\/a>and being used by the <a href=\"http:\/\/kernel.org\/\">Linux kernel project<\/a>, is using libcurl for HTTP(S) accesses.<\/p>\n<p><a href=\"http:\/\/bazaar-vcs.org\/\">bazaar<\/a> &#8211; is written in Python and accordingly uses the <a href=\"http:\/\/pycurl.sf.net\/\">pycurl<\/a> binding for libcurl.<\/p>\n<p>Anyone know of other version control systems using libcurl?<\/p>\n<p>Ironies here include that libcurl itself is still kept within a <a href=\"http:\/\/daniel.haxx.se\/blog\/2008\/04\/14\/why-curl-sticks-with-cvs\/\">CVS respository<\/a>, and also quite possibly that the first version management project I myself participated is <a href=\"http:\/\/subversion.tigris.org\/\">Subversion<\/a> and that not only has two different HTTP dependencies, but none of those two are libcurl (they are <a href=\"http:\/\/www.webdav.org\/neon\/\">neon <\/a>and <a href=\"http:\/\/code.google.com\/p\/serf\/\">serf<\/a>)&#8230;<\/p>\n<p><strong>Update:<\/strong> it seems that <a href=\"http:\/\/mercurial.selenic.com\/wiki\/\">Mercurial<\/a> is also using pycurl as an optional dependency.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Already before, I&#8217;ve mentioned that libcurl is becoming popular within package management. libcurl is a generic library for file transfers over a wide variety of protocols. Over the years, some of the recent ditributed version management softwares have learned about libcurl&#8217;s powers and they now use it: darcs &#8211; was born in 2003 and is &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2009\/09\/22\/libcurl-in-version-management\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">libcurl in version management<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,14,6],"tags":[33,257,421,142],"class_list":["post-1054","post","type-post","status-publish","format-standard","hentry","category-curl","category-linux","category-floss","tag-curl-and-libcurl","tag-git","tag-linux","tag-subversion"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=1054"}],"version-history":[{"count":8,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1054\/revisions"}],"predecessor-version":[{"id":1223,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1054\/revisions\/1223"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=1054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=1054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=1054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}