fiat-crypto
faust
fiat-crypto | faust | |
---|---|---|
10 | 54 | |
689 | 2,408 | |
1.0% | 0.9% | |
9.5 | 9.6 | |
9 days ago | 5 days ago | |
Coq | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
fiat-crypto
- Dilemma: very unhappy with a highly-paying tech job. What to do?
-
Go 1.20 Cryptography
> Both your comment here and some stuff FiloSottile implied in the comment above seem like they would be (largely) mitigated by what the "Go 1.20 Cryptography" post mentions about using formally verified primitives that are generated by "fiat-crypto".
> Beyond the curve primitive, wouldn't the majority of the code involved be shared/identical? These are closely related curves, not some oddball algorithm that requires a bespoke implementation.
Well, fiat-crypto only provides the curve implementations.
Each language, library, etc. that wants to support ed448 will need a SHAKE256 implementation too. That has historically not been a safe addition, in practice.
Also, I don't see Ed448 on here (but I do see P448?): https://github.com/mit-plv/fiat-crypto/tree/6e6809be8290a7d7...
- Program Synthesis is Possible (2018)
- fiat-crypto: Cryptographic Primitive Code Generation by Fiat
-
The technological case against Bitcoin and blockchain
I think this is a more interesting URL: https://github.com/mit-plv/fiat-crypto/issues/902
-
Orion 0.17 – X25519 with formally-verified field arithemtic and serde support
Hi, maintainer of the crate
The formal verification comes from [fiat-crypto](https://github.com/mit-plv/fiat-crypto), which generates the Rust code of the underlying Curve25519 field arithmetic. Correctness is checked by Coq.
Mention of fiat-crypto was included in the original posts on Reddit/Lobste.rs but seems it was missed in this cross-post.
-
Orion 0.17 - X25519 with formally-verified field arithemtic and serde support
Orion now supports X25519 (Diffie-Hellman over Curve25519), which uses formally-verified field arithmetic generated by fiat-crypto. Additionally, a lot of focus was put into hardening the CI/CD of the crate along with added support for serde. This work was championed by /u/vlmutolo.
-
"Serious" vulnerability found in Libgcrypt, GnuPG's cryptographic library - Help Net Security
I have great hopes for formal verification: - https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/bond - https://github.com/project-everest/hacl-star - https://github.com/mit-plv/fiat-crypto - https://saw.galois.com/
-
Synthesizing Correct-by-Construction Code for Cryptographic Primitives
A list of projects using the code generated by fiat-crypto: https://github.com/mit-plv/fiat-crypto/issues/902
faust
-
My Sixth Year as a Bootstrapped Founder
Glicol looks very cool! Also check out Faust if you haven't (https://faust.grame.fr), another FP sound programming language.
-
Welcome to the Chata Programming Language
The linked (https://github.com/grame-cncm/faust) looks reasonable to me.
Chata probably needs to work out roughly what the semantics of the language should be. Its good to know what the library support is intended to be as that informs language design (assuming the library is to be implemented in chata anyway). Quite a lot of this page is about syntax.
There are some design decisions that have deep impact on programming languages. Reflection, mutation, memory management, control flow, concurrency. There are some implementation choices that end up constraining the language spec - python seems full of these.
Echoing p4bl0, implementing the language will change the spec. Writing a spec up front might be an interesting exercise anyway. I'd encourage doing both at the same time - sometimes describe what a feature should be and then implement it, sometimes implement something as best you can and then describe what you've got.
Implementation language will affect how long it takes to get something working, how good the thing will be and what you'll think about along the way. The usual guidance is to write in something familiar to you, ideally with pattern matching as compilers do a lot of DAG transforms.
- I'd say that writing a language in C took me ages and forced me to really carefully think through the data representation.
- Writing one in lua took very little time but the implementation was shaky, probably because it let me handwave a lot of the details.
- Writing a language in itself, from a baseline of not really having anything working, makes for very confusing debugging and (eventually) a totally clear understanding of the language semantics.
Good luck with the project.
- Faust: A functional programming language for audio synthesis and processing
-
Live + Python = ❤️
Faust integration would be awesome: https://faust.grame.fr Then again we have MaxMSP, so in the end it feels kind of redundant
- Glicol: Next-generation computer music language
-
Csound
Csound is extremely powerful, but my favorite thing in this vein these days is Faust:
https://faust.grame.fr/
It's a functional language with a nice way of generating diagrams of DSP algorithms, but its big killer feature for me is its language bindings, which include C, C++, Cmajor, Codebox, CSharp, DLang, Java, JAX, Julia, JSFX, "old" C++, Rust, VHDL, and WebAssembly (wast/wasm) out of the box.
-
faust VS midica - a user suggested alternative
2 projects | 12 Aug 2023
-
Libraries / frameworks / tooling for cross-platform (LV2/VST3) C++ plug-ins (open-source)
Have a look at FAUST as well: https://faust.grame.fr/
-
logueSDK for beginners
Once you have an idea of basic programming practice, you need to learn some DSP programming. One of the better tools for this is Faust https://faust.grame.fr/ , bear in mind this is a functional programming language, and has very different syntax to C++, but the same principles apply.
- Where is a good place to get started with DSP coding?