Apache Calcite
Uno Platform
Apache Calcite | Uno Platform | |
---|---|---|
28 | 133 | |
4,368 | 8,431 | |
1.1% | 1.3% | |
9.0 | 10.0 | |
7 days ago | 3 days ago | |
Java | C# | |
Apache License 2.0 | 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.
Apache Calcite
-
Data diffs: Algorithms for explaining what changed in a dataset (2022)
> Make diff work on more than just SQLite.
Another way of doing this that I've been wanting to do for a while is to implement the DIFF operator in Apache Calcite[0]. Using Calcite, DIFF could be implemented as rewrite rules to generate the appropriate SQL to be directly executed against the database or the DIFF operator can be implemented outside of the database (which the original paper shows is more efficient).
[0] https://calcite.apache.org/
-
Apache Baremaps: online maps toolkit
Yes, planetiler rocks and the memory mapped collections enabled us to remove our dependency to rocksdb.
From my perspective, planetiler started as an effort to generate vector tiles from the OpenMapTile schema as fast as possible (pbf -> mvt). By contrast, Baremaps started as an effort to create a new schema and style from the ground up. In this regard, having a database (pbf -> db <- mvt) enables to live reload changes made in the configuration files. The database has a cost, but also comes with additional advantages (updates, dynamic data, generation of tiles at zoom levels 16+, etc.).
That being said, I think the two projects overlap and I hope we will find opportunities to collaborate in the future. For instance, whereas PostgreSQL is still required in Baremaps, I recently ported a lot of the ST_ function of Postgis to Apache Calcite with the intent to execute SQL on fast memory mapped collection.
https://github.com/apache/calcite/blob/main/core/src/main/ja...
A planet wide import in Postgis currently takes about 4 hours with the COPY API (easy to parallelize) followed by about 12 hours of simplification in Postgis (not easy to parallelize). I will try to publish a detailed benchmark in the future.
-
How to manipulate SQL string programmatically?
Use a SQL Parser like sqlglot or Apache Calcite to compile user's query into an AST.
- Can SQL be used without an RDBMS?
- Apache Calcite
- Want to contribute more to open source projects.
-
CITIC Industrial Cloud — Apache ShardingSphere Enterprise Applications
The SQL Federation engine contains processes such as SQL Parser, SQL Binder, SQL Optimizer, Data Fetcher and Operator Calculator, suitable for dealing with co-related queries and subqueries cross multiple database instances. At the underlying layer, it uses Calcite to implement RBO (Rule Based Optimizer) and CBO (Cost Based Optimizer) based on relational algebra, and query the results through the optimal execution plan.
-
Postgres wire compatible SQLite proxy
Awesome to see work in the DB wire compatible space. On the MySQL side, there was MySQL Proxy (https://github.com/mysql/mysql-proxy), which was scriptable with Lua, with which you could create your own MySQL wire compatible connections. Unfortunately it appears to have been abandoned by Oracle and IIRC doesn't work with 5.7 and beyond. I used it in the past to hack together a MySQL wire adapter for Interana (https://scuba.io/).
I guess these days the best approach for connecting arbitrary data sources to existing drivers, at least for OLAP, is Apache Calcite (https://calcite.apache.org/). Unfortunately that feels a little more involved.
-
Launch HN: Hydra (YC W22) – Query Any Database via Postgres
For anyone interested, Apache Calcite[0] is an open source data management framework which seems to do many of the same things that Hydra claims to do, but taking a different approach. Operating as a Java library, Calcite contains "adapters" to many different data sources from existing JDBC connectors to Elasticsearch to Cassandra. All of these different data sources can be joined together as desired. Calcite also has it's own optimizer which is able to push down relevant parts of the query to the different data sources. However, you get full SQL on data sources which don't support it, with Calcite executing the remaining bits itself.
Unfortunately, I would not be too surprised if Calcite was found to be less performance-optimized than Hydra. That said, there are users of Calcite at Google, Uber, Spotify, and others who have made great use of various parts of the framework.
[0] https://calcite.apache.org/
-
Anyone know of any software that can help in designing then outputting to various database
Abstraction Layer - You can use something like Calcite to abstract out your data storage. https://calcite.apache.org/
Uno Platform
- Uno: Create Beautiful Cross Platform .NET Apps Faster
-
AvaloniaUI: Create Multi-Platform Apps with .NET
And Uno Platform (https://platform.uno/) is akin to React Native in terms of native controls usage.
-
Ask HN: Cross-platform GUI apps in 2024
also UNO Platform (C#) which is suitable for simple or complex cross platform business applications : https://platform.uno/
-
Lee's opinions on Umbraco + naming things
Why is this a problem? At face value, it isn't a problem. Taking a step back at a more global level, what does "uComponents" mean to the rest of the world? Many of the .NET developers who heavily use NuGet may have not even heard of Umbraco CMS, let alone a 3rd party plugin for it. What if people from the Uno Platform community are browsing NuGet for some kind of components extension library? You can see, this could get confusing outside the scope of the Umbraco community/ecosystem. On top of this, uComponents was developed against Umbraco v4, with its last release in 2016, now it's there to be lingering on the NuGet repository until the end of time, set in stone.
- A Proposal for an asynchronous Rust GUI framework
-
Dart 3.1 and a retrospective on functional style programming in Dart
Not a fan of XAML after trying to get into it, but there is Uno Platform. It wraps native widgets on mobile, just like React Native (which is good for accessibility), and uses C#. https://platform.uno/
My guess is that it's mainly focused on mobile. On Windows, it has no overhead (behaving like a normal WinUI 3 app), on macOS I think it uses Catalyst by default (which was developed by Apple to make more iOS apps available for Mac desktops) and on Linux it draws its own widgets that the devs try imitating the GTK style with.
On Android and iOS, it just uses the native widgets which I think is a better experience so you can see my reasons for guessing it's mobile-first. That may or may not be what you want.
-
What is the best for Develop Cross-platform Application ?
5- Uno
- Do you guys think this programmer is right about dotnet?
-
Going from React to Vanilla JavaScript
> ...building UIs with the document/element api
When the whole premise is flawed, JSX or not, does it really matter if there is a better or worse way of misusing a technology not meant for UIs?
Leave HTML and JavaScript to Wikipedia and other hypertext document libraries.
Unfortunately, WASM is not there yet, but people are trying: https://platform.uno.
-
Xamarin Forms to Uno Platform migration: databinding techniques
Uno Platform is fully open source, under Apache 2.0 license. You can see the license here https://github.com/unoplatform/uno/blob/master/License.md
What are some alternatives?
Trino - Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Avalonia - Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI client technology
ANTLR - ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
Introducing .NET Multi-platform App UI (MAUI) - .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Presto - The official home of the Presto distributed SQL query engine for big data
Flutter - Flutter makes it easy and fast to build beautiful apps for mobile and beyond
JSqlParser - JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
MudBlazor - Blazor Component Library based on Material design with an emphasis on ease of use. Mainly written in C# with Javascript kept to a bare minimum it empowers .NET developers to easily debug it if needed.
Apache Spark - Apache Spark - A unified analytics engine for large-scale data processing
Mono - Mono open source ECMA CLI, C# and .NET implementation.
Apache Drill - Apache Drill is a distributed MPP query layer for self describing data
Electron.NET - :electron: Build cross platform desktop apps with ASP.NET Core (Razor Pages, MVC, Blazor).