All Projects → alexkehayias → cargo-safety

alexkehayias / cargo-safety

Licence: other
cargo-safety provides safety checks for Rust projects by finding all uses of unsafe code in dependencies.

Programming Languages

rust
11053 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to cargo-safety

hms-safetydetect-demo-android
SafetyDetect Sample provides many sample programs for your reference or usage.This example demonstrates how to integrate services provided by Safetydetect Kit, such as APPchecks, URLcheck, Userdetect, Wifidetect.
Stars: ✭ 16 (-73.77%)
Mutual labels:  safety
OpenCircle
Open-source Circle of 6 with improved security and privacy features. PLEASE NOTE: For the new Circulo app please visit: https://gitlab.com/circuloapp/circulo-android
Stars: ✭ 26 (-57.38%)
Mutual labels:  safety
ITSTools
A multi-formalism, multi-solution model-checker centered on the language GAL
Stars: ✭ 17 (-72.13%)
Mutual labels:  safety
safe-exploration
Safe Exploration with MPC and Gaussian process models
Stars: ✭ 57 (-6.56%)
Mutual labels:  safety
ScenarioArchitect
The Scenario Architect provides a lightweight graphical user interface that allows a straightforward realization and manipulation of concrete driving testing scenarios. Exemplary usecases are the validation of an online verification framework or training of an prediction algorithm.
Stars: ✭ 23 (-62.3%)
Mutual labels:  safety
Stack
A Type-Safe, Thread-Safe-ish approach to CoreData in Swift
Stars: ✭ 47 (-22.95%)
Mutual labels:  safety
safe
🛡 PHP functions smarten up to throw exceptions instead of returning false or triggering errors.
Stars: ✭ 15 (-75.41%)
Mutual labels:  safety
safe-control-gym
PyBullet CartPole and Quadrotor environments—with CasADi symbolic a priori dynamics—for learning-based control and RL
Stars: ✭ 272 (+345.9%)
Mutual labels:  safety
AnnotationInject
Compile-time Swift dependency injection annotations
Stars: ✭ 40 (-34.43%)
Mutual labels:  safety
human robot collaboration
Yet another repo for the baxter collaboration task.
Stars: ✭ 18 (-70.49%)
Mutual labels:  safety
undo
Gelöschte Artikel, Slices und Kategorien wiederherstellen
Stars: ✭ 31 (-49.18%)
Mutual labels:  safety
Ts Toolbelt
ts-toolbelt is the largest, and most tested type library available right now, featuring +200 utilities. Our type collection packages some of the most advanced mapped types, conditional types, and recursive types on the market.
Stars: ✭ 3,099 (+4980.33%)
Mutual labels:  safety
Awesome Safety Critical
List of resources about programming practices for writing safety-critical software.
Stars: ✭ 1,425 (+2236.07%)
Mutual labels:  safety
dtls
Datagram Transport Layer Security (DTLS) client.
Stars: ✭ 72 (+18.03%)
Mutual labels:  safety
react-safe-src-doc-iframe
A component which applies guards to srcdoc iframes in order to provide a predictable and safe experience to the user. Complements the sandbox native iframe attribute.
Stars: ✭ 22 (-63.93%)
Mutual labels:  safety
NonEmptyCollections
A type-safe implementation for collections that cannot be empty. Life is too short for emptiness-checks!
Stars: ✭ 45 (-26.23%)
Mutual labels:  safety
DLV
Safety Verification of Deep Neural Networks
Stars: ✭ 45 (-26.23%)
Mutual labels:  safety

cargo safety plugin

This crate provides a subcommand for cargo that performs safety checks for Rust projects by finding all uses of unsafe code in dependencies. To do this reliably, the dependency tree is parsed by cargo, code is parsed into it's AST and then walked. Using Rust's wonderful pattern matching abilities we can quickly visit all places code can be unsafe.

Why

In coming to Rust, many people are drawn to it's promises of safety. I was curious to see how and why people were circumventing Rust's safety guarantees through the unsafe escape hatch. While I don't think we should reject any libraries that use unsafety, it is good to know where exactly things are unsafe so you can make an informed decision about the many libraries you may use.

Try it

Note: nightly build required

cargo install cargo-safety && cargo safety

Output (json):

[
  {
    "lib_name": "gcc",
    "status": "failed",
    "offenses": [
      {
        "occurences": "\/Users\/alexkehayias\/.cargo\/registry\/src\/github.com-1ecc6299db9ec823\/gcc-0.3.40\/src\/registry.rs:73:1: 73:29\n`unsafe impl Sync for Repr {}`\n",
        "kind": "unsafe_impl"
      }
	]
  }
]

License

Copyright © 2018 Alex Kehayias

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].