12 releases (5 breaking)

0.5.0 Dec 28, 2023
0.4.3 Dec 2, 2023
0.4.2 Nov 25, 2023
0.3.0 Oct 5, 2023
0.0.0-placeholder Nov 4, 2022

#307 in Programming languages

Download history 125/week @ 2024-07-20 283/week @ 2024-07-27 183/week @ 2024-08-03 38/week @ 2024-08-10 144/week @ 2024-08-17 44/week @ 2024-08-24 75/week @ 2024-08-31 327/week @ 2024-09-07 33/week @ 2024-09-14 78/week @ 2024-09-21 81/week @ 2024-09-28 82/week @ 2024-10-05 29/week @ 2024-10-12 59/week @ 2024-10-19 53/week @ 2024-10-26 38/week @ 2024-11-02

182 downloads per month
Used in marker_rustc_driver

MIT/Apache

370KB
7K SLoC

Marker Adapter 🔌

Crates.io License: MIT OR Apache-2.0

This crate provides a common interface for drivers to communicate with lint crates for Marker. It does some heavy lifting which would otherwise need to be done by each individual driver. You're welcome to check out Marker's Readme if you're interested in the project.

Warning

This crate is not part of Marker's official API, it's only intended to be used by drivers.

Functions

Driver -> Lint Crate Communication

The adapter can load a list of lint crates and send information from the driver to all lint crates. The adapter and API takes care of safe ABI communication between the driver and lint crates.

Lint Crate -> Driver Communication

Marker's API requires some callbacks from the lint crates into the driver. The adapter can deal with all the ABI conversions, drivers only need to implement the DriverContext trait provided by the adapter.

Creating an adapter instance

An adapter instance can be created from the environment. For this, the following environment values are read:

  • MARKER_LINT_CRATES: A semicolon separated list of crate name and absolute path pairs. Each pair is internally separated by a colon.

Contributing

Contributions are highly appreciated! If you encounter any issues or have suggestions for improvements, please check out Marker's GitHub repository.

License

Copyright (c) 2022-2023 Rust-Marker

Rust-marker is distributed under the terms of the MIT license or the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT.

Dependencies

~7–15MB
~193K SLoC