HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Manishearth
rust-clippy
Rust2015–2017
Manishearth / rust-clippy

rust-clippy

A bunch of lints to catch common mistakes and improve your Rust code

12Distinct people
20Mentions
0Explicit recommenders
113GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A bunch of lints to catch common mistakes and improve your Rust code

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month20 dated mentions

Observed mentions: 2015-03-18 01:04:32 UTC to 2017-05-10 02:11:24 UTC.

01232015-03-01 00:00:00 UTC to 2015-04-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 20152015-04-01 00:00:00 UTC to 2015-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-05-01 00:00:00 UTC to 2015-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-01 00:00:00 UTC to 2015-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-07-01 00:00:00 UTC to 2015-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-01 00:00:00 UTC to 2015-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-01 00:00:00 UTC to 2015-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-10-01 00:00:00 UTC to 2015-11-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-11-01 00:00:00 UTC to 2015-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-12-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2016-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-02-01 00:00:00 UTC to 2016-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-03-01 00:00:00 UTC to 2016-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-04-01 00:00:00 UTC to 2016-05-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsApr 20162016-05-01 00:00:00 UTC to 2016-06-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-06-01 00:00:00 UTC to 2016-07-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2016-07-01 00:00:00 UTC to 2016-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-08-01 00:00:00 UTC to 2016-09-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2016-09-01 00:00:00 UTC to 2016-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-10-01 00:00:00 UTC to 2016-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-11-01 00:00:00 UTC to 2016-12-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2016-12-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2017-02-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-02-01 00:00:00 UTC to 2017-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-03-01 00:00:00 UTC to 2017-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-04-01 00:00:00 UTC to 2017-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-05-01 00:00:00 UTC to 2017-06-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsMay 2017

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 20152015-03-01 00:00:00 UTC2015-04-01 00:00:00 UTC101
Apr 20152015-04-01 00:00:00 UTC2015-05-01 00:00:00 UTC000
May 20152015-05-01 00:00:00 UTC2015-06-01 00:00:00 UTC000
Jun 20152015-06-01 00:00:00 UTC2015-07-01 00:00:00 UTC000
Jul 20152015-07-01 00:00:00 UTC2015-08-01 00:00:00 UTC000
Aug 20152015-08-01 00:00:00 UTC2015-09-01 00:00:00 UTC000
Sep 20152015-09-01 00:00:00 UTC2015-10-01 00:00:00 UTC000
Oct 20152015-10-01 00:00:00 UTC2015-11-01 00:00:00 UTC101
Nov 20152015-11-01 00:00:00 UTC2015-12-01 00:00:00 UTC000
Dec 20152015-12-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
Jan 20162016-01-01 00:00:00 UTC2016-02-01 00:00:00 UTC000
Feb 20162016-02-01 00:00:00 UTC2016-03-01 00:00:00 UTC101
Mar 20162016-03-01 00:00:00 UTC2016-04-01 00:00:00 UTC000
Apr 20162016-04-01 00:00:00 UTC2016-05-01 00:00:00 UTC202
May 20162016-05-01 00:00:00 UTC2016-06-01 00:00:00 UTC101
Jun 20162016-06-01 00:00:00 UTC2016-07-01 00:00:00 UTC202
Jul 20162016-07-01 00:00:00 UTC2016-08-01 00:00:00 UTC101
Aug 20162016-08-01 00:00:00 UTC2016-09-01 00:00:00 UTC303
Sep 20162016-09-01 00:00:00 UTC2016-10-01 00:00:00 UTC000
Oct 20162016-10-01 00:00:00 UTC2016-11-01 00:00:00 UTC000
Nov 20162016-11-01 00:00:00 UTC2016-12-01 00:00:00 UTC202
Dec 20162016-12-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
Jan 20172017-01-01 00:00:00 UTC2017-02-01 00:00:00 UTC101
Feb 20172017-02-01 00:00:00 UTC2017-03-01 00:00:00 UTC000
Mar 20172017-03-01 00:00:00 UTC2017-04-01 00:00:00 UTC000
Apr 20172017-04-01 00:00:00 UTC2017-05-01 00:00:00 UTC101
May 20172017-05-01 00:00:00 UTC2017-06-01 00:00:00 UTC202

What Hacker News says

20 sources
You can use some analysis tools on Rust code, because it generates C-ABI-compatible objects; for instance, I'd expect that https://github.com/agl/ctgrind would work on Rust. Looking at the MISRA-C guidelines (or more specifically, a pirated copy - are these available legitimately to the public?), it seems like about half of them aren't problems in Rust, because it's warning you about stupid things in C that can't be fixed for legacy reasons, and half of them are things that could be caught with a linter / static analysis tool like https://github.com/Manishearth/rust-clippy . Do you think building something that implements as many of the MISRA-C checks as possible is useful progress towards the high-assurance Rust goal?
In Tor in a safer language: Network team update from Amsterdam
I admit that I'm having a hard time seeing this criticism as anything but overblown. Finding usage of unwrap is trivially easy via textual search. Furthermore, Clippy can be used to automatically forbid usage of unwrap for your entire team ( https://github.com/Manishearth/rust-clippy/wiki#option_unwra... ). Furthermore, even when you hit a panic, it tells you which line of code in which file triggered it so that you can fix it immediately. Furthermore, the Rust community has a strong and long-entrenched proscription against libraries which unwrap rather than handle errors. We can agree in the cynical interpretation of the laziness of programmers, but the mitigations in this case are so trivial, and the stakes so low, that focusing on unwrap as a point of contention is a poor use of energy.
In Announcing Tokio 0.1
> Can you evolve your syntax as people get used to it? Not only are you adding work to your parser, but people who use your language also have to deal with the multiple iterations of the syntax that linger in various codebases. Clippy[1] helps a lot in this case, it helps people writting idiomatic Rust and it's updated when new syntaxes introduces new ways to do stuff, so the old one is deprecated _de facto_. [1] https://github.com/Manishearth/rust-clippy
In Stroustrup's Rule and Layering Over Time in Rust
I disagree. I recognize that the author is writing based on their experiences, but that should not paint all contributors that way. I'm involved in two projects (Rust, Servo) which have immense numbers of contributions from volunteers. Both have mentorship programs (Servo's is more evolved, Rust's is getting on its feet). In Servo we spend a lot of time mentoring people. In return, once every few new contributors we get someone who sticks around, and perhaps even works on major things. This saves ton of time. I haven't ever measured this formally, but by eyeballing it I'd say contributors save more time than the review process and mentorship take. I also have a personal project, rust-clippy (http://github.com/manishearth/rust-clippy/). It started out as my own thing, and I merged with another similar project and got a co-maintainer. It wa
Read the rest
s mostly the two of us working on it. We could have gotten it to the stage which it is at now, but it would have taken forever. At one point I started tagging issues as easy/medium/hard, and wrote some documentation for newbies wanting to contribute. I advertised this a bit in the appropriate forums, and now I have tons of contributors; three of which have become maintainers (they still contribute a lot), and a couple others who frequently contribute. I don't have much time to work on this project these days, but it has grown so much without me needing to put much time in it at all. These days I mostly review PRs and take part in discussions, but rarely write code for it. The project is now a tool with more than 150 lints which most of the Rust community uses and loves. It would not have gotten there without the contributors. If you'd like your project to be mroe receptive to new contributors, I have a blog post I once wrote for this: http://manishearth.github.io/blog/2016/01/03/making-your-ope.... Many of the tips there don't require much effort -- it's either a one-time thing you have to do, or a change in process that doesn't make the process longer. Aside: Often a distinction between "contributor" and "maintainer" is made, and this is cropping up in this thread too. In clippy this has never really been a thing. We have maintainers, but when someone becomes a maintainer they don't really do anything different -- they don't take on more responsibilities. Rather, most of the contributors I have ramp up from working on individual issues to reviewing and doing maintainer-y things, and once we think they've got the gist of it we give them merge powers. In Servo/Rust we also have a similar continuum -- we have folks who take part in review without having review access ("review access" is the ability to tell our autoland bot that something is reviewed and ready to test/merge), and at some point they are given reviewer permissions. So there is of course a difference in the powers available to contributors and maintainers, but in the projects I work on the most there's not much of a difference in what they do; maintainers don't have additional responsibilities, they just have powers which help they carry out what they were doing as a contributor anyway.
In Contributors do not save time
The regex crate in Rust works perfectly well on stable, AFAIK. The author has improved the runtime-constructed regexes to be much faster, while those same improvements haven't yet made it to the compile-time macro-constructed regexes. So, to get the most speed, one gives up having a hard compiler error when using an invalid regex literal. That said, the clippy tool (https://github.com/Manishearth/rust-clippy) can do compile-time verification of regex literals, but it depends on nightly Rust because it relies on deep integration with unstable compiler internals. (The regex crate also has a new optional nightly-only SIMD-accelerated algorithm, but it's otherwise fully functional on stable.) Re: nightly features, I agree that there are several things which Rust really needs to stabilize to achieve many of its goals (stable SIMD, inline assem
Read the rest
bly, procedural macros, stable custom allocator support, the Rust Language Server for IDE integration, etc etc etc). Now that the major compiler internals refactoring of the last year is nearly complete, my understanding is that we may start to see more aggressive progress on some of those items which keep pushing users to nightly Rust.
In “Safe C++ Subset” Is Vapourware

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.