pREST
tidb
Our great sponsors
pREST | tidb | |
---|---|---|
15 | 26 | |
4,064 | 35,934 | |
0.9% | 0.9% | |
8.0 | 10.0 | |
17 days ago | 7 days ago | |
Go | 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.
pREST
- Need help connecting VueJS 3 UI to a database
- Postgres as Rest
-
pREST on YugabyteDB
In a previous post, I published an example with PostgREST on YugabyteDB. Here is another one: pREST opens a REST API to PostgreSQL. YugabyteDB is a PostgreSQL-compatible Open-Source Distributed SQL database. It adds horizontal scalability to applications built for PostgreSQL. Let's see how it integrates with pREST.
-
PostgREST – Serve a RESTful API from Any Postgres Database
Pretty sure I started with this: https://github.com/prest/prest/blob/main/cmd/root.go
And from there you can execute your own command and add handlers or other things as you wish.
-
Accessing Postgres via REST using pRest
With pRest, it is possible to create a RESTFul API to access the contents of a Postgres database in a fast and straightforward way. The project, written in Go, can be found on its official website and Github.
-
Admin panel for Go back end?
So this is something I've been pondering about for a while and I think I've settled to using Directus: https://directus.io/ as my db admin and dbmate for migrations. Alternatively you could use react admin: https://marmelab.com/react-admin/ . The only problem with the latter is that it requires you to build your rest endpoint for CRUD but you can use postgrest: https://postgrest.org/en/stable/ (or it's go alternative prest: https://prestd.com/) for that.
-
Full Text Search in PostgreSQL
prest / prest
There is PostgREST written in Haskell, but keeping Haskell software in production is not an easy job. With this need pREST was born. Read more.
This feature was implemented in version 1.0.5 as a search filter and works like this:
tidb
- Embed hard-coded SQL into binaries for a cleaner look!
-
Ask HN: Who is hiring? (January 2023)
PingCAP | https://www.pingcap.com | Database Engineer, Product Manager, Developer Advocate and more | Remote in California | Full-time
We work on a MySQL compatible distributed database called TiDB https://github.com/pingcap/tidb/ and key-value store called TiKV.
TiDB is written in Go and TiKV is written in Rust.
More roles and locations are available on https://www.pingcap.com/careers/
-
Banco de dados puramente com go
Pesquise por CockroachDB ou TiDB
- MySQL-mimic - Python implementation of the MySQL server wire protocol.
- Apache Pegasus – A a distributed key-value storage system
- Gitlab is splitting their main and ci Postgres databases
-
Open Source Databases in Go
tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1.
-
Gitea – a painless self-hosted Git service
Gitea is very easy to use, but I find the Activity feature is a little slow.
I experienced the "Try Gitea" service and migrated our TiDB repo https://github.com/pingcap/tidb to it. When I clicked the Activity tab and selected "1 year" period, I found the page loading was so slow, nearly 90s. And I also found that this Activity doesn't have a Cache, I re-selected "1 year" again, and the page loading was nearly the same time.
I guess Gitea uses git command to traverse all the logs for the period every time. Maybe it can use a database to speed up, or like Github only provide at max "1 month" period.
-
Best language for database kernel development?
One of the founder of TiDB/TiKV here from [PingCAP](https://pingcap.com)
I have been thinking about this problem with my peers when I started to build [TiDB](https://github.com/pingcap/tidb) seven years ago. At that time, nearly all of us were familiar with Go language, so we decided to use Go to build the SQL layer of TiDB. Thanks to Go, we could develop TiDB very quickly and released the first MVP in half a year. I remembered clearly the sense when we ran TPC-C successfully, although the TPMC was just 1 at that time, this was a good start for us.
But Go had some problems, e.g. the GC was not good before, the fair scheduling might cause some latency problem, or data racing may happen sometimes. So when we decided to build a distributed storage (aha, [TiKV](https://githbu.com/tikv/tikv), we wanted use another language to guarantee safety. I really admire our courage - we chose Rust which was just released 1.0 and missed lots of libraries at that time. Now it seems that this is an awesome choice, TiKV has been graduated from CNCF, and been used as building block not only for TiDB, but also for other distributed systems. Thanks Rust.
When TiDB started being used in many companies, we found that our customer not only ran lots of online transactions in TiDB, but also they wanted to ran some realtime analytic queries directly because the data has been in TiDB already. So we decided to build a HTAP database, to introduce a column storage beside TiKV, this is [TiFlash](https://github.com/pingcap/tiflash). We build TiFlash based on Clickhouse, so of course, we use C++.
As you can see, to build only one integrated database - TiDB, we at least use three languages, every language has its own reason to be introduced. We can treat the distributed database as a service system, each service can be built with your favorite language and the services are linked by gRPC like TiDB does now. You may doubt that - “hey, guys, you are building a database, performance is very importance”. Yes, this is true, but we also build a complex distributed system, especially on the cloud. Scale-out, elastic, user experience must be important too. This is trade off for an engineer :-)
-
Insights for any repository on Github
As the database supporter for ossinsight.io, I also use this to get many insights for TiDB itself, see https://ossinsight.io/analyze/pingcap/tidb.
What are some alternatives?
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
oceanbase - OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.
InfluxDB - Scalable datastore for metrics, events, and real-time analytics
go-mysql-elasticsearch - Sync MySQL data into elasticsearch
go-mysql - a powerful mysql toolset with Go
dgraph - The high-performance database for modern applications
kingshard - A high-performance MySQL proxy
jaeger - CNCF Jaeger, a Distributed Tracing Platform
etcd - Distributed reliable key-value store for the most critical data of a distributed system
migrate - Database migrations. CLI and Golang library.
go-memdb - Golang in-memory database built on immutable radix trees