rustls / rustls/rustls-openssl-compat

Make it possible to use it as rust dependency for a crate that builds a bundled version of a c-lib depending on openssl

Open
#78 5 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
87
Forks
11
Avg merge
20h 10m
Merged PRs (30d)
3

Description

This is rather a long shot feature request. I maintain pq-src, which is a crate bundling the libpq C source code and building + linking it as part of your cargo build process. libpq depends on openssl for TLS encrypted connections. I currently solve that by letting pq-src depend on openssl-src (which statically links openssl) and extracting the relevant information about the include directory from the environment variables they set like this. I would like to be able to do the same thing with rustls-openssl-compant to eliminate the usage of openssl in my dependency tree.

As far as I see that would require:

  • Having rustls-openssl-compat be published on crates.io, so that other crates can depend on it. This would then build + link the crate into the final binary, which should export the "right" symbols as far as I can tell
  • Make sure that rustls-openssl-compat provides a header file + exposes the location of that header file via an environment variable to other build scripts (See the cargo documentation on this feature here (search for DEP_)
  • Likely add support for functions that are used by libpq and that are currently missing from rustls-openssl-compat, but that's secondary, as I would like to get your opinion on this idea first

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the crate's packaging and build-script setup, then compare it with the dependency and environment-variable handling in pq-src's build.rs and Cargo's DEP_ documentation. Determine whether publishing the crate, exposing a header path, and supporting libpq's missing functions form a feasible, testable scope; the issue currently asks for that feasibility assessment.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.