/libhttpseverywhere

Read-only mirror of https://gitlab.gnome.org/GNOME/libhttpseverywhere

Primary LanguageValaGNU Lesser General Public License v3.0LGPL-3.0

libhttpseverywhere

Packaging status

This library enables you to leverage the power of HTTPSEverywhere to any desktop-application you want

HTTPSEverywhere is a browser plugin that comes with a set of rules that you can use to ensure that you use HTTP instead of HTTPS only when this is absolutely not circumventable. With libhttpseverywhere you will get a C-bindable, GLib-based library you can link/bind against in almost all languages

As a library written in Vala, libhttpseverywhere will support GObject-Introspection. This means that you can use the lib in many popular languages like e.g. Ruby, Python or Javascript.

Current Users

Documentation

You can either generate the documentation as a devhelp-book for yourself (see Building-section)

Dependencies

The following libraries have to be present for libhttpseverywhere to run:

  • glib-2.0
  • gee-0.8
  • json-glib-1.0
  • libsoup-2.4
  • libarchive

The library names are in pkg-config notation

Building

Meson is used as the buildsystem for libhttpseverywhere. The build dependencies are the following:

  • c-compiler of your choice
  • valac - Vala compiler
  • valadoc - Vala documentation tool
  • gobject-introspection - GObject introspection compiler
  • libgirepository1.0-dev - Dev headers for gobject introspection
  • libjson-glib-dev - Dev headers for json-glib
  • libsoup2.4-dev - Dev headers for libsoup-2.4
  • libarchive-dev - Dev headers for libarchive

Italics are valid debian package names.

Clone and build the library as follows:

$ git clone https://git.gnome.org/browse/libhttpseverywhere
$ cd libhttpseverywhere
$ meson build && cd build
$ ninja

If you want to build the documentation, make sure you have valadoc available on your system and call meson like this:

meson -Denable_valadoc=true build && cd build

If you desire to install the library, execute:

# ninja install

Running GI

libhttpseverywhere supports GObject-Introspection which means you can consume it in various popular languages including but not limited to: Python, Perl, Lua, JS, PHP.

Feel free to add examples for your favorite language in an example folder.

Note: If you installed the library in /usr/local, you have to export the following environment variables for the examples to work:

$ export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu
$ export GI_TYPELIB_PATH=/usr/local/lib/x86_64-linux-gnu/girepository-1.0/

You will also have to adapt the multiarch-string x86_64-linux-gnu if you built the software for another architecture.