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 <[email protected]> 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 > [email protected] > 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! _______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
