webpki VS Ockam

Compare webpki vs Ockam and see what are their differences.

webpki

WebPKI X.509 Certificate Validation in Rust (by briansmith)

Ockam

Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale. (by build-trust)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
webpki Ockam
6 76
451 4,347
- 1.2%
8.0 10.0
2 months ago 2 days ago
Rust Rust
GNU General Public License v3.0 or later 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.

webpki

Posts with mentions or reviews of webpki. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-13.
  • Struggling with the OpenSSL Crate
    2 projects | /r/rust | 13 Mar 2022
    Beyond that, various things like the ScyllaDB driver are using OpenSSL because WebPKI doesn't support validating connections to IP addresses (as opposed to DNS names) and RusTLS currently delegates to WebPKI.
  • What Is Rust's Hole Purpose?
    4 projects | news.ycombinator.com | 18 Feb 2022
    There's a JIT framework in Rust: https://github.com/bytecodealliance/wasmtime

    There's a library for doing full X.509 certificate parsing and verification: https://briansmith.org/rustdoc/webpki/

    There's definitely some attempts at doing pure-Rust SSL, but I suspect a lot of them are also doing some sketchy things with crypto that shouldn't be trusted (getting constant-time stuff implemented properly is really challenging, and probably requires large amounts of assembly to guarantee correctness).

  • I think a major issue with the rust ecosystem is that it's full of unexpected design decisions
    5 projects | /r/rust | 5 Feb 2022
    An issue was raised with webpki to support the IP addressees 5 years ago, and yet it's still not there. What do people use to overcome the fact that rustls can't do IP-based client connections because of it? My guess would be, they are switching to native-tls or openssl-tls.
  • Why is SSL such a pain?
    5 projects | /r/rust | 28 Jul 2021
    Yes, rustls currently doesn't support certificates without hostnames (only an IP); this is actually an issue with the webpki crate, and work to solve it is ongoing (will hopefully land in a release in a few months or so).
  • Preparing Rustls for Wider Adoption
    9 projects | news.ycombinator.com | 20 Apr 2021
    > Bundling this set with Firefox

    I love that they did that; it was actually my idea (https://bugzilla.mozilla.org/show_bug.cgi?id=657228). I believe the list is pretty large and changes frequently and so they download it dynamically.

    > short cut to a "Yes"

    Do they really do that? That's awesome if so. Then they don't even need to ship the roots.

    > I specifically don't like [...] saying "unknown issuer"

    https://github.com/briansmith/webpki/issues/221

    > If std::fs::File::open() gives me Result with an io:Error that claims "File not found" but the underlying OS file open actually failed due to a permission error, you can see why that's a problem right? Even if this hypothetical OS doesn't expose any specific errors, "File not found" is misleading.

    A more accurate analogy: You ask to open "example.txt" without supplying the path, and there is no "example.txt" in the current working directory. You will get "file not found."

    Regardless, I agree we could have a better name than UnknownIssuer for this error.

Ockam

Posts with mentions or reviews of Ockam. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-21.
  • Tunnelmole, an ngrok alternative (open source)
    9 projects | news.ycombinator.com | 21 Mar 2024
    disclosure: I work at Ockam.

    The Portals for Mac app is an example of the type of thing you could build using the open source stack of protocols. The README (linked by parent) links out to all of the relevant parts of the protocol documentation to explain how these work together. The NAT Traversal (https://github.com/build-trust/ockam/blob/develop/examples/a...) part of the README is probably the best explanation of why the free relay you get via Ockam Orchestrator is a useful part of this demo.

    As for why would anyone trust this: The protocols are designed so you absolutely don't have to trust the relay. Trust is pushed out to the edges that you control and so you're not susceptible to a MITM attack if something like a relay is compromised. The protocol design for all of this is open and documented, and was independently audited by (IMO) some of the best in the business, Trail of Bits: https://docs.ockam.io/reference/protocols.

  • Alt to Ngrok, Written in Rust
    1 project | news.ycombinator.com | 6 Mar 2024
  • How we built a Swift app that uses Rust
    1 project | dev.to | 28 Dec 2023
    🚀 Portals for Mac – A macOS app built in Swift that uses the Ockam Rust library to privately share a service on your Mac with anyone, anywhere. The service is shared securely over an end-to-end encrypted and mutually authenticated Ockam Portal. Your friends will have access to it on their localhost! This app is a great example of the kinds of things you can build with Ockam 👉
  • Ockam is participating in Hacktoberfest - great opportunity for your first OSS contribution
    1 project | /r/programming | 6 Oct 2023
  • Participate in Hacktoberfest with Ockam!
    1 project | /r/hacktoberfest | 5 Oct 2023
  • Create End-to-End Channels in Rust with Ockam Routing
    1 project | dev.to | 4 Aug 2023
    Ockam is a suite of programming libraries, command line tools, and managed cloud services to orchestrate end-to-end encryption, mutual authentication, key management, credential management, and authorization policy enforcement — all at massive scale. Ockam's end-to-end secure channels guarantee authenticity, integrity, and confidentiality of all data-in-motion at the application layer.
  • Please do not spam other GitHub users via email
    1 project | news.ycombinator.com | 24 May 2023
  • Tunnel via Cloudflare to Any TCP Service
    3 projects | news.ycombinator.com | 19 May 2023
    We’ve been working on something (https://github.com/build-trust/ockam) that enables exactly this, among a whole host of other use cases. If you check out some of the code examples in the docs you’ll see how to setup a tunnel using the CLI.

    For other use cases there’s also the programming libraries (only Rust atm, though I was spiking a TypeScript/Node PoC this week) which might provide more flexibility. Personally I’m excited by the idea of being able to move this kind of secure by design connectivity all the way into the application layer though.

  • How to grow an OSS community
    1 project | dev.to | 16 Feb 2023
    If you're not already an active contributor to an open source project or two it can seem very daunting. You don't want to do the wrong thing and embarrass yourself. Remove that anxiety for people by giving them an easy way to do something low risk. Matt did that a couple of years ago by creating a long-lived issue for people to simply say hello. That's it. Say hi, introduce yourself. It's a safe place to make a first step.
  • Hiring - Ockam (Series A SaaS)
    1 project | /r/devopsjobs | 12 Jan 2023

What are some alternatives?

When comparing webpki and Ockam you can also consider the following projects:

rust-native-tls

ejabberd - Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)

rustls - A modern TLS library in Rust

rust-crypto - A (mostly) pure-Rust implementation of various cryptographic algorithms.

sshkit - An Elixir toolkit for performing tasks on one or more servers, built on top of Erlang’s SSH application.

rust-openssl - OpenSSL bindings for Rust

socket - Socket wrapping for Elixir.

schannel-rs - Schannel API-bindings for rust (provides an interface for native SSL/TLS using windows APIs)

ring - Safe, fast, small crypto using Rust

sodiumoxide - [DEPRECATED] Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium)