dafny
Django
dafny | Django | |
---|---|---|
38 | 536 | |
3,112 | 84,187 | |
1.3% | 0.5% | |
9.5 | 9.8 | |
7 days ago | 5 days ago | |
C# | Python | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
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.
dafny
-
Long division verified via Hoare logic
Automation of Hoare logic is quite good these days. Dafny, from MS Research (https://dafny.org), is probably the most friendly formal language. Dafny has been used to verify large systems, including many components of AWS. I am hoping that LLMs make more advanced languages, such as Liquid Haskell or Agda, much easier to write. Ideally, lots of code should be autocompleted once a human provides a type signature. The advantage of formal verification is that we are sure the generated code is correct.
-
Automated reasoning and generative AI: Harness creativity with formal verifications
Modern software verification employs various approaches, each offering different trade-offs between ease of use and strength of guarantees. AWS contributes to the open source program verification tools used in the previous examples. Dafny and Kani represent two powerful approaches to program verification. Let's see how they work in practice before connecting the dots between automated reasoning and generative AI.
-
Playing Chess with 84,688 Regular Expressions
On that note, I discovered Dafny[1] recently, as a more accessible way to program with proofs. There's a companion book[2] that seems very accessible and down-to-earth (and, unfortunately, quite expensive). I didn't have the time to play with it yet, but it looks like it does what Ada/SPARK does (and more), but with less verbose syntax and more options for compilation targets. It seems to be actively developed, too. Personally, I had a very hard time getting into Coq, which is a proof assistant more than a programming environment - Dafny seems much more welcoming for a "working programmer" :)
[1] https://dafny.org/
[2] https://mitpress.mit.edu/9780262546232/program-proofs
-
F*: A proof oriented general purpose programming language
https://dafny.org/ also allows proof checking and allows do write real programs with it. It has a java like syntax and is also from MS I believe
-
Safer with Google: Advancing Memory Safety
> I do think there's a bit of the Ignaz Semmelweis[1] issue at hand here, where developers want to believe in their inherent quality and refuse processes that improve safety if it goes against their worldview
I think the problem is that other variables (not only safety) must be assessed beyond the pure "better". Haskell is very good also. Very correct. Who uses that, and where? And why? Why not everyone uses https://dafny.org/ ?
-
Verified Rust for low-level systems code
For those that are interested but perhaps not aware in this similar project, Dafny is a "verification-aware programming language" that can compile to rust: https://github.com/dafny-lang/dafny
- Dafny is a verification-aware programming language
- Candy – a minimalistic functional programming language
- Dafny – a verification-aware programming language
-
Lean4 helped Terence Tao discover a small bug in his recent paper
Code correctness is a lost art. I requirement to think in abstractions is what scares a lot of devs to avoid it. The higher abstraction language (formal specs) focus on a dedicated language to describe code, whereas lower abstractions (code contracts) basically replace validation logic with a better model.
C# once had Code Contracts[1]; a simple yet powerful way to make formal specifications. The contracts was checked at compile time using the Z3 SMT solver[2]. It was unfortunately deprecated after a few years[3] and once removed from the .NET Runtime it was declared dead.
The closest thing C# now have is probably Dafny[4] while the C# dev guys still try to figure out how to implement it directly in the language[5].
[1] https://www.microsoft.com/en-us/research/project/code-contra...
[2] https://github.com/Z3Prover/z3
[3] https://github.com/microsoft/CodeContracts
[4] https://github.com/dafny-lang/dafny
[5] https://github.com/dotnet/csharplang/issues/105
Django
-
Software design isn’t magic, but it feels like sorcery when you get it right
Django MVC done right (and battle-tested)
-
15 dev survival lessons from someone who actually made it
Django
-
Thinking in Templates
Django, for example, has a template engine that allows you to define a template in HTML and render it with a context -- data usually sourced from the database via the Django view. However, with its filters and helpers, it is almost too powerful -- undermining the core idea of templating. The same goes for Ember.js, as well.
-
Why and How to Patch a Python Package in Nix
I am maintaining a Python codebase that is based on Django and Django REST Framework (DRF). The codebase uses Nix for development, testing, CI/CD and packaging.
-
Rapid AI-powered applications with Django MongoDB and Voyage API
In the world of Python web development, Django is considered a powerhouse. It is one of the oldest, yet most actively developed web frameworks with a vibrant developer community. Technically speaking, Django is a third-party Python framework for creating web applications that run on a server.
-
Open Source: A Goldmine for Indie Hackers
Speed of Development: Frameworks such as Django or Rails accelerate the development process.
-
Indie Hacking with Open Source Tools: Innovating on a Budget
This ecosystem is fueled by repositories hosting powerful languages, functions, and versatile tools—from backend frameworks like Django and Ruby on Rails to containerization with Docker and distributed version control via Git. Moreover, indie hackers can also utilize open source design tools (e.g. GIMP, Inkscape) and analytics platforms such as Matomo.
-
Django Rest framework Now EP01: Poetry
Django
-
API Security: The First Steps Toward a Fortified Backend
For the API, I will use the Django framework and other supporting libraries.
-
Which Go Web Backend Framework Is Right for Your Next Project? A Detailed Analysis of Features and Performance
Beego is often characterized as a comprehensive, or "full-stack", framework, drawing parallels to the well-established Django framework in the Python ecosystem. It is designed to facilitate the rapid development of enterprise-grade applications and RESTful APIs by providing a wealth of built-in features.
What are some alternatives?
tlaplus - TLC is a model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.
fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production
FStar - A Proof-oriented Programming Language
Flask - The Python micro framework for building web applications.
Rust-for-Linux - Adding support for the Rust language to the Linux kernel.
Masonite - The Modern And Developer Centric Python Web Framework. Be sure to read the documentation and join the Discord channel for questions: https://discord.gg/TwKeFahmPZ