• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cossacklabs / themis / #7606
88%
master: 83%

Build:
Build:
LAST BUILD BRANCH: release/0.15.0
DEFAULT BRANCH: master
Ran 01 May 2020 05:22AM UTC
Jobs 1
Files 73
Run time 9s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Apr 2020 04:01PM UTC coverage: 87.707%. Remained the same
#7606

push

travis-ci

web-flow
Drop "bindgen" from libthemis-sys dependencies (#626)

* Drop "bindgen" from libthemis-sys dependencies

Initially it was used to dynamically generate Rust bindings to C code.
I have thought that this is the most idiomatic way to it. It is also
more robust as Bindgen will be working with the actual Themis version
installed on the user system.

However, Bindgen has a lot of transitive dependencies, they take quite a
while to compile, and they need to be compiled by our users too. This is
a constant source of irritation for developers. Users are not really
happy with that as well.

While we try our best to maintain backwards compatibility when it comes
to symbols and dependencies, we generally do not bother with forward
compatibility. And we effectively pin wrappers to the core library.
That is, RustThemis 0.N is guaranteed to work with Themis Core 0.N,
it is also guaranteed to work with Themis Core 0.N+1, and will most
likely work with Themis Core 0.N+2 (unless there is deprecated API
removed). However, the converse is not the case. RustThemis 0.N+1 may
work with Themis 0.N if no new features were added, but otherwise it
might fail to compile.

Thus, RustThemis is effectivelly pinned to Themis Core version, meaning
that their versions must match. If that's the case, we do not need to
generate FFI bindings on the user machine because we know which version
we are shipping with and what symbols are available there. Thankfully,
we also write portable C code so Themis API does not depend on the
target architecture -- which allows us to ship the bindings verbatim.
Otherwise we'd have no choice other that generate them on the fly.

With that in mind, start generating "src/lib.rs" manually with the help
of "bindgen.sh" script. The developers are expected to run it on their
machine to regenerate bindings somewhere before release. The users now
do not need to generate these bindings on their machine, meaning that
we can drop "bi... (continued)

3767 of 4295 relevant lines covered (87.71%)

19326.04 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #7606.1 01 May 2020 05:22AM UTC 0
87.71
Source Files on build #7606
Detailed source file information is not available for this build.
  • Back to Repo
  • 85af22d8 on github
  • Prev Build on HEAD
  • Next Build on HEAD
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc