/usr/share/doc/libcurl-devel
ABI - Application Binary Interface ================================== "ABI" describes the low-level interface between an application program and a library. Calling conventions, function arguments, return values, struct sizes/defines and more. [Wikipedia has a longer description](https://en.wikipedia.org/wiki/Application_binary_interface) ## Upgrades A libcurl upgrade does not break the ABI or change established and documented behavior. Your application can remain using libcurl just as before, only with less bugs and possibly with added new features. ## Version Numbers In libcurl land, you cannot tell by the libcurl version number if that libcurl is binary compatible or not with another libcurl version. As a rule, we don't break the ABI so you can *always* upgrade to a later version without any loss or change in functionality. ## Soname Bumps Whenever there are changes done to the library that will cause an ABI breakage, that may require your application to get attention or possibly be changed to adhere to new things, we will bump the soname. Then the library will get a different output name and thus can in fact be installed in parallel with an older installed lib (on most systems). Thus, old applications built against the previous ABI version will remain working and using the older lib, while newer applications build and use the newer one. During the first seven years of libcurl releases, there have only been four ABI breakages. We are determined to bump the SONAME as rarely as possible. Ideally, we never do it again. ## Downgrades Going to an older libcurl version from one you're currently using can be a tricky thing. Mostly we add features and options to newer libcurls as that won't break ABI or hamper existing applications. This has the implication that going backwards may get you in a situation where you pick a libcurl that doesn't support the options your application needs. Or possibly you even downgrade so far so you cross an ABI break border and thus a different soname, and then your application may need to adapt to the modified ABI. ## History The previous major library soname number bumps (breaking backwards compatibility) happened the following times: 0 - libcurl 7.1, August 2000 1 - libcurl 7.5 December 2000 2 - libcurl 7.7 March 2001 3 - libcurl 7.12.0 June 2004 4 - libcurl 7.16.0 October 2006
.
Edit
..
Edit
10-at-a-time.c
Edit
ABI.md
Edit
CONTRIBUTE.md
Edit
INTERNALS.md
Edit
Makefile.example
Edit
altsvc.c
Edit
anyauthput.c
Edit
cacertinmem.c
Edit
certinfo.c
Edit
chkspeed.c
Edit
cookie_interface.c
Edit
crawler.c
Edit
curlgtk.c
Edit
curlx.c
Edit
debug.c
Edit
ephiperfifo.c
Edit
evhiperfifo.c
Edit
externalsocket.c
Edit
fileupload.c
Edit
fopen.c
Edit
ftp-wildcard.c
Edit
ftpget.c
Edit
ftpgetinfo.c
Edit
ftpgetresp.c
Edit
ftpsget.c
Edit
ftpupload.c
Edit
ftpuploadfrommem.c
Edit
ftpuploadresume.c
Edit
getinfo.c
Edit
getinmemory.c
Edit
getredirect.c
Edit
getreferrer.c
Edit
ghiper.c
Edit
hiperfifo.c
Edit
href_extractor.c
Edit
htmltidy.c
Edit
http-post.c
Edit
http2-download.c
Edit
http2-pushinmemory.c
Edit
http2-serverpush.c
Edit
http2-upload.c
Edit
http3-present.c
Edit
http3.c
Edit
httpcustomheader.c
Edit
httpput-postfields.c
Edit
httpput.c
Edit
https.c
Edit
imap-append.c
Edit
imap-authzid.c
Edit
imap-copy.c
Edit
imap-create.c
Edit
imap-delete.c
Edit
imap-examine.c
Edit
imap-fetch.c
Edit
imap-list.c
Edit
imap-lsub.c
Edit
imap-multi.c
Edit
imap-noop.c
Edit
imap-search.c
Edit
imap-ssl.c
Edit
imap-store.c
Edit
imap-tls.c
Edit
multi-app.c
Edit
multi-debugcallback.c
Edit
multi-double.c
Edit
multi-event.c
Edit
multi-formadd.c
Edit
multi-poll.c
Edit
multi-post.c
Edit
multi-single.c
Edit
multi-uv.c
Edit
multithread.c
Edit
opensslthreadlock.c
Edit
parseurl.c
Edit
persistent.c
Edit
pop3-authzid.c
Edit
pop3-dele.c
Edit
pop3-list.c
Edit
pop3-multi.c
Edit
pop3-noop.c
Edit
pop3-retr.c
Edit
pop3-ssl.c
Edit
pop3-stat.c
Edit
pop3-tls.c
Edit
pop3-top.c
Edit
pop3-uidl.c
Edit
post-callback.c
Edit
postinmemory.c
Edit
postit2-formadd.c
Edit
postit2.c
Edit
progressfunc.c
Edit
resolve.c
Edit
rtsp.c
Edit
sampleconv.c
Edit
sendrecv.c
Edit
sepheaders.c
Edit
sessioninfo.c
Edit
sftpget.c
Edit
sftpuploadresume.c
Edit
shared-connection-cache.c
Edit
simple.c
Edit
simplepost.c
Edit
simplessl.c
Edit
smooth-gtk-thread.c
Edit
smtp-authzid.c
Edit
smtp-expn.c
Edit
smtp-mail.c
Edit
smtp-mime.c
Edit
smtp-multi.c
Edit
smtp-ssl.c
Edit
smtp-tls.c
Edit
smtp-vrfy.c
Edit
sslbackend.c
Edit
synctime.c
Edit
threaded-ssl.c
Edit
url2file.c
Edit
urlapi.c
Edit
usercertinmem.c
Edit
xmlstream.c
Edit