includes for public APIs

Dag Haavi Finstad daghf at varnish-software.com
Tue Sep 1 12:20:22 CEST 2015


Hi

Here's my list from evaluating various commonly used VMODs:

Initial impression is that we can get rid of cache/cache.h from
(almost) all of these by exposing the workspace bits in a separate
header file.


libvmod_example
===============
- varnish includes:  vrt.h, cache/cache.h

>From cache/cache.h:
- WS_*


libvmod_var
===========
- varnish includes: vrt.h, vsa.h, cache/cache.h
- vqueue
- AN/AZ
- CHECK_OBJ_*
- vsa_suckaddr_len

>From cache/cache.h:
- WS_*


libvmod_digest
==============
- varnish includes: vcl.h, vrt.h, cache/cache.h
- VCL_EVENT_*
- CHECK_OBJ_*

>From cache/cache.h:
- WS_*


libvmod_curl
============
- varnish includes: vrt.h, vsb.h, cache/cache.h
- vqueue
- VSB_*
- CHECK_OBJ_*

>From cache/cache.h:
- struct req, struct busyobj, struct vsl
  - Should get rid of these deps via PRIV_TASK
- WS_*


libvmod_header
==============
- varnish includes:  vcl.h, vrt.h, cache/cache.h
- This one uses various internal header representation bits that we
probably won't expose in a stable API ...


libvmod_urlcode
===============
- varnish includes: vrt.h, cache/cache.h
- CHECK_OBJ_*

>From cache/cache.h:
- WS_*


libvmod_cookie
=============
- varnish includes: vrt.h, vqueue.h, cache/cache.h
- vqueue
- CHECK_OBJ_*
- VSB_*

>From cache/cache.h:
- struct req, ...
  - Should get rid of this via PRIV_TASK
- WS_*


libvmod_geoip
=============
- varnish includes: vrt.h, vrt_obj.h, cache/cache.h

>From cache/cache.h:
- WS_*


libvmod_vsthrottle
==================
- varnish includes: vrt.h, vsha256.h, vcl.h, miniobj.h
- VCL_EVENT_*
- CHECK_OBJ_*
- SHA256_*


On Tue, Sep 1, 2015 at 11:55 AM, Geoff Simmons <geoff at uplex.de> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Hello all,
>
> At VDD this morning, phk asked for suggestions about includes that
> would someday comprise public APIs. Here's what I found from grepping
> VMODs and standalone apps that I maintain or work with:
>
> "miniobj.h"
> "vas.h"
> "vcs_version.h"
> "vcl.h"
> "vct.h"
> "vdef.h"
> "vmb.h"
> "vpf.h"
> "vqueue.h"
> "vre.h"
> "vrt.h"
> "vsb.h"
> "vsha256.h"
> "vtim.h"
>
> ... and the VAPI APIs (of course).
>
> Note that most of these are not so much APIs about a caching proxy per
> se, but rather tested solutions for various tasks, such as safe
> buffers, character types, memory barriers, SHA256. It makes a VMOD or
> app that much more powerful to make use of them. (Can't imagine what a
> VMOD would do with vpf.h, but it's quite useful for an application.)
>
> Some others along those lines that I see in include/*:
>
> vbm.h
> vend.h
> vfil.h
> vnum.h
> vrnd.h
> vtcp.h
>
> Have I understood correctly that vcli.h will now be available to VMODs
> (at least at init time)?
>
>
> Best,
> Geoff
> - --
> ** * * UPLEX - Nils Goroll Systemoptimierung
>
> Scheffelstraße 32
> 22301 Hamburg
>
> Tel +49 40 2880 5731
> Mob +49 176 636 90917
> Fax +49 40 42949753
>
> http://uplex.de
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
>
> iQIcBAEBCAAGBQJV5XXsAAoJEOUwvh9pJNURNg4P/1f8ReGYDtdZ0maYYVlUM4xI
> qC73rF//5R9pPv67PmdCL5c+ChL0lFZvYFPfPt/4zzFdytcUqPOSBW+5n3nqG9eQ
> Puos+H2r9c32Fc3W3v815uX2ecxUjz8h519JMDTx3u2cg+Ynwt7oxNFliG0zFhhI
> O8BWCOFfyQHayh5W7xqMwLrkZ2SrDE5iYJBK2VPduHFEhP50eqAQOKkc+HBkhzVW
> +c2k9vg927PmHeep/YSJ7ATbn6nfBEd7p9yrfbDSGkcuM48LsIQZ1XESs6deKAjZ
> x5dpGvc0eY+3PzDy+2+fw1G4eVv6ZL/RiRnsWNKPx0AjGuOF4km7Z/qJr2PmxBon
> jwsb3WpmUvyD0lDDpeNnNjwWcwCb3meX/zNK8ZxFnpG/W6SMaJ9nso6nM8hUR+xM
> R7MokC0bZI9MhIOliScU/D6rp9ioAh2SU2kuj1pXaxSOJU7hRfR4IOoHyYLrpPBA
> atU6sIVqxBaGp7mKyDlAOyJttj5/I6UQCLZnybm8v8Y1WK9ozNHlq11g6jsy5UJJ
> uEVzQ32I+Th9Gahp+2myg9WalukxNRksiyORJd0cXijvQvAyO3lY52rlvKWtJdgK
> t1+BVWU2MS7+UMg/lmQTsSHLDgaubsOkQvOeoKY1bNHaw0Yb2HpiF+ajUYIOdTSJ
> izdrA89UFh4MsPA9hWoL
> =grVm
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> varnish-dev mailing list
> varnish-dev at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev



-- 
Dag Haavi Finstad
Software Developer | Varnish Software
Mobile: +47 476 64 134
We Make Websites Fly!



More information about the varnish-dev mailing list