ntp-parser VS unsafe-code-guidelines

Compare ntp-parser vs unsafe-code-guidelines and see what are their differences.

ntp-parser

NTP parser written in rust with nom (by rusticata)

unsafe-code-guidelines

Forum for discussion about what unsafe code can and can't do (by rust-lang)
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
ntp-parser unsafe-code-guidelines
1 76
19 703
- 0.6%
0.0 5.5
almost 4 years ago 13 days ago
Rust
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ntp-parser

Posts with mentions or reviews of ntp-parser. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-03-01.
  • Hey Rustaceans! Got an easy question? Ask here (9/2021)!
    17 projects | /r/rust | 1 Mar 2021
    Well nom does list out examples on the readme page, though many are probably for older versions of nom. I clicked through a couple and it looks like ntp is up to date with nom 6.0. The last full parser I wrote using nom was in v4.0 days, which was more macro-oriented than current nom. Since what you pass nom is slices of data, you will basically be reading from a file into a buffer, and calling your parsing functions on that. If it returns an error indicating it is incomplete, just read in another chunk of data into your buffer and try again.

unsafe-code-guidelines

Posts with mentions or reviews of unsafe-code-guidelines. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-05-20.
  • Writing into Uninitialized Buffers in Rust
    5 projects | news.ycombinator.com | 20 May 2025
    It's an open question whether creating a reference to an uninitialized value is instant UB, or only UB if that reference is misused (e.g. if copy_to_slice reads an uninitialized byte). The specific discussion is whether the language requires "recursive validity for references", which would mean constructing a reference to an invalid value is "language UB" (your program is not well specified and the compiler is allowed to "miscompile" it) rather than "library UB" (your program is well-specified, but functions you call might not expect an uninitialized buffer and trigger language UB). See the discussion here: https://github.com/rust-lang/unsafe-code-guidelines/issues/3...

    Currently, the team is leaning in the direction of not requiring recursive validity for references. This would mean your code is not language UB as long as you can assume `set_len` and `copy_to_slice` never read from 'data`. However, it's still considered library UB, as this assumption is not documented or specified anywhere and is not guaranteed -- changes to safe code in your program or in the standard library can turn this into language UB, so by doing something like this you're writing fragile code that gives up a lot of Rust's safety by design.

  • Zlib-rs is faster than C
    10 projects | news.ycombinator.com | 16 Mar 2025
    This is definitely true right now, but I don't think it will always be the case.

    Unsafe Rust is currently extremely underspecified and underdocumented, but it's designed to be far more specifiable than C. For example: aliasing rules. When and how you're allowed to alias references in unsafe code is not at all documented and under much active discussion; whereas in C pointer aliasing rules are well defined but also completely insane (casting pointers to a different type in order to reinterpret the bytes of an object is often UB even in completely innocuous cases).

    Once Rust's memory model is fully specified and written down, unsafe Rust is trying to go for something much simpler, more teachable, and with less footguns than C.

    Huge props to Ralf Jung and the opsem team who are working on answering these questions & creating a formal specification: https://github.com/rust-lang/unsafe-code-guidelines/issues

  • Passing nothing is surprisingly difficult
    2 projects | news.ycombinator.com | 16 Jan 2024
    Useful context on the Rust side is this issue [1]. It sounds like some of the author's concerns are addressed already.

    [1]: https://github.com/rust-lang/unsafe-code-guidelines/issues/4...

  • Blog Post: Non-Send Futures When?
    2 projects | /r/rust | 10 Dec 2023
    Is this captured by one of the known soundness conflicts? If not then should consider adding it to the list.
  • Are crates like vcell and volatile cell still unsound?
    1 project | /r/rust | 5 Jun 2023
  • Question: Are there things for Unsafe Rust learn from Zig?
    2 projects | /r/rust | 1 Jun 2023
    There are some competing proposals for different memory models. Stacked borrows is the current proposal, but there are more work in the approproate WG.
  • Let's thank who have helped us in the Rust Community together!
    9 projects | /r/rust | 28 May 2023
    Thank you /u/RalfJung for bringing formal methods to Rust, both through models like Stacked Borrows, by developing miri, and by working on unsafe-code-guidelines which aims to specify exactly what is and isn't allowed in unsafe code (surprisingly, it's an open question as 2023!)
  • Questions about ownership rule
    2 projects | /r/rust | 23 May 2023
  • Noob Here: Why doesn't this work?
    1 project | /r/rust | 16 Apr 2023
    You could imagine some way to make this safe for example automatically convert &'short &'long mut T to &'short &'short T, but it's non-trivial to prove they are safe at all, not to mention ensuring this is correctly implemented in the compiler. If you're interested there's also a discussion on whether the opposite (& & T to & &mut T) is sound here.
  • When Zig is safer and faster than (unsafe) Rust
    3 projects | /r/rust | 7 Mar 2023
    Agreed! MIRI is so good, it still feels like magic to me. It also comforts me that the Rust team takes improving unsafe semantics seriously, with the past Unsafe Code Guidelines WG and today's operational semantics team (t-opsem).

What are some alternatives?

When comparing ntp-parser and unsafe-code-guidelines you can also consider the following projects:

alexandrie - An alternative crate registry, implemented in Rust.

rfcs - RFCs for changes to Rust

rust-ffi-omnibus - A collection of examples of using code written in Rust from other languages

rust - Empowering everyone to build reliable and efficient software.

minimax-rs - A generic implementation of Negamax in Rust.

miri - An interpreter for Rust's mid-level intermediate representation

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured