passerine
dapr
passerine | dapr | |
---|---|---|
10 | 79 | |
1,029 | 23,293 | |
0.5% | 0.5% | |
0.0 | 9.7 | |
almost 2 years ago | 8 days ago | |
Rust | Go | |
MIT License | Apache License 2.0 |
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.
passerine
- Passerine: A small functional scripting language with macros, powered by Rust
-
The absurd complexity of server-side rendering
It's still a long way from being complete, but I'm working on something like that[0]. Eventual plans are to have good Rust library interop (e.g. bindings to hyper for http) while also being able to compile to Wasm (to run on an erlang-style distributed runtime / the browser). The language is currently interpreted, but one I get typechecking working, I should be able to merge in the Wasm codegen backend I'm working on (with eventual plans for LLVM). Current compiler has zero external dependencies.
Language itself could be described as a mix of OCaml, Scheme, and Lua. Currently working on the hygienic procedural macro system and system injection through algebraic effects.
[0]: https://github.com/vrtbl/passerine
-
I wrote a Cozy Programming language
Passerine was the next language i decided to try to fit onto paka, but alas this one too was eventually put aside for the time being.
-
Scripting Languages of the Future
Tossing my hat in for Passerine [1]. Gorgeous ML inspired syntax. Built for scripting Rust applications.
Dreaming here: Lua is a fantastic scripting language, but the Rust FFI isn’t as ergonomic as it could be. Enter Luster [2], which is basically LuaJIT rewritten in Rust.
Embedding a scripting language in a Rust application gives you tons of power (e.g. scripting Rust structs from Lua [3]), and setting this up isn’t terribly difficult.
[1] https://github.com/vrtbl/passerine
[2]: https://github.com/kyren/luster
[3]: https://git.sr.ht/~ioiojo/kiwi
- GitHub - vrtbl/passerine: A small extensible programming language designed for concise expression with little code.
-
Extensible syntax?
Seed7 and https://github.com/vrtbl/passerine (and seemingly more as others have suggested) have direct / first-class support of syntax declaration/definition in a homoiconic way, as powerful as LISPs, but feels more "natural" compared to a LISP.
-
Achieving nullable ergonomics with a real optional type without special compiler privileges.
It used to work pretty well only if the core PL makes semicolons programmable, but given the development of effect systems, plus customizable syntax as in https://github.com/ThomasMertes/seed7 and https://github.com/vrtbl/passerine , I'd say, there are much more we can do about it.
-
Passerine: An extensible and expressive new programming language
git clone https://github.com/vrtbl/passerine
- Passerine — extensible functional scripting langauge — 0.9.0 Released!
dapr
-
Join the Diagrid Catalyst AWS Hackathon!
Diagrid Catalyst is a Developer API platform providing a brand-new approach to distributed application development. Using the Catalyst APIs, powered by the Dapr open source project, developers can overcome the complexity of rewriting common software patterns and achieve higher productivity by offloading infrastructure concerns from their code to Catalyst.
- Dapr: Microservices API
-
Interesting projects using WebAssembly
The following two examples are open-source projects maintained by Fermyon with contributions from companies like Microsoft and SUSE. The first is Spin, which allows us to use WebAssembly to create Serverless applications. The second, SpinKube, combines some of the topics I'm most excited about these days: WebAssembly and Kubernetes Operators :) The official website says, "By running applications in the Wasm abstraction layer, SpinKube offers developers a more powerful, efficient, and scalable way to optimize application delivery on Kubernetes." By the way, this post shows how to integrate SpinKube with Dapr, another technology I'm very interested in, and I should write some posts soon.
-
The Ambassador Pattern
Speaking of this has anyone had much experience with Dapr (https://dapr.io/) before?
I always thought this was a particularly interesting approach from Microsoft where they use this pattern to essentially take the complexity of micro services and instead try and keep it as simple as a normal .NET application but (and I think this is the clever part) in both a vendor and language neutral way.
But all of a sudden it means you can start removing all kinds of cruft and random SDKs from your codebase and push almost all of your interactions with the outside world into something like this .
-
Comparing Azure Functions vs Dapr on Azure Container Apps
Azure Container Apps hosting of Azure Functions is a way to host Azure Functions directly in Container Apps - additionally to App Service with and without containers. This offering also adds some Container Apps built-in capabilities like the Dapr microservices framework which would allow for mixing microservices workloads on the same environment with Functions.
-
Episode 150: myNewsWrap – SAP and Microsoft
Having containers is nice but everything (well ... nearly everything 😉) gets better with Dapr as an outstanding tool for app development in the container-based area. Here we go what might be worth a look:
-
Using DARP in production?
Anyone using or planing to use darp Distributed application platform runtime as a microservices platform? https://dapr.io/
-
Ensuring Seamless Operations: Troubleshooting and Resolving Dapr Certificate Expiry
A CNCF project, the Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity. Whether your communication pattern is service to service invocation or pub/sub messaging, Dapr helps you write resilient and secured microservices. Essentially, it provides a new way to build microservices by using the reusable blocks implemented as sidecars.
-
Understanding the Dapr workflow engine and workflow patterns in .NET (1hr webinar)
Dapr is a runtime that implements common patterns such as pub/sub, state storage, etc. It runs as a sidecar to your app. Your app then interfaces with it using an sdk or http calls to use said patterns instead of implementing those patterns directly yourself. Seems pretty cool to me, but you can find out more at https://dapr.io/.
-
Is Dapr actually used by anyone?
- Over 21k stars on GitHub, see the core repo and devstats.
What are some alternatives?
dmd - dmd D Programming Language compiler
MassTransit - Distributed Application Framework for .NET
xvm - Ecstasy and XVM
camel-k - Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
langs-in-rust - A list of programming languages implemented in Rust, for inspiration.
tye - Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration.
seed7 - Source code of Seed7
OpenFaaS - OpenFaaS - Serverless Functions Made Simple
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
Nomad - Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.
piccolo - An experimental stackless Lua VM implemented in pure Rust
NServiceBus - Build, version, and monitor better microservices with the most powerful service platform for .NET