Repository navigation
Conversation
zeroshade
force-pushed
the
feat/rust-crates
branch
from
October 28, 2026 22:51
352affc to
9fa4004
Compare
zeroshade
force-pushed
the
feat/rust-crates
branch
from
October 28, 2026 23:29
9fa4004 to
c136c8b
Compare
…http tiny_http 0.12 unwraps peer_addr() on accept; on Windows it fails with WSAENOTCONN when the client has already closed the connection, killing the worker and failing the next request with EOF.
zeroshade
force-pushed
the
feat/rust-crates
branch
from
October 29, 2026 17:07
9239767 to
99c1202
Compare
…LIB_DIR Keep bundled platform crates as the default, with custom-directory and pkg-config overrides selecting static or opt-in dynamic linking. Move the MSVC Go initializer into the sys crate and reject non-x86_64 static MSVC links. pkg-config 0.3.34 parse_libs defaults the non-macOS/non-Windows system root to /usr, and is_static_available requires an archive path outside every system root. Thus statik(true) alone emits an unqualified link for /usr/lib/<triplet>/libdbc.a, allowing the shared library to win. Probe without Cargo link metadata and explicitly emit static=dbc, leaving private system libraries dynamic.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
rust/:columnar-dbc(safe API),columnar-dbc-sys(bindgen 0.73.2 bindings generated fromlibdbc.h, committed) and fivecolumnar-dbc-sys-<platform>crates, each bundling a prebuiltlibdbc.a. Supported targets: x86_64/aarch64 Linux (glibc), x86_64/aarch64 macOS,x86_64-pc-windows-msvcandx86_64-pc-windows-gnu. Other targets fail at build time.MSVC: a Go c-archive registers its runtime entry in
.ctors, which only the MinGW CRT runs. Under MSVC the first dbc call blocked forever. The Windows platform crate registers_rt0_amd64_windows_libin.CRT$XCUfortarget_env = "msvc". A localcargo xwinlink map shows the pointer in the CRT'sXCA..XCZinitializer table. CI in the top PR of the stack runs the tests.Stacked on #547.
Linking a system or custom libdbc
Modeled on
zstd-sys. The defaultbundledfeature keeps the per-platform crates. Otherwise the source is chosen in this order:DBC_SYS_LIB_DIR=<dir>: a custom directory.pkg-configfeature, orDBC_SYS_USE_PKG_CONFIGset: pkg-config moduledbc.bundled.With
default-features = false, features = ["pkg-config"], the platform crates aren't downloaded at all. Env overrides win even whenbundledis on: the platform crate is neverextern crated, so its archive isn't linked.Linking is static by default;
DBC_DYNAMIC(pkg-config-rs's own convention) linkslibdbc.so. pkg-config-rs refuses static links for archives under/usr, sobuild.rsemits the link directives itself rather than using.statik(true).The MSVC Go runtime initializer moved from the Windows platform crate into
-sys. It's applied to any static x86_64 MSVC link, and static MSVC links on other architectures fail with a clear error.