Skip to content

Commit e4e5494

Browse files
committed
bump 3.3.0
1 parent 8c2008f commit e4e5494

9 files changed

Lines changed: 32 additions & 52 deletions

File tree

.github/workflows/build-test-publish.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
RELEASE_VERSION: v3.2.7
11+
RELEASE_VERSION: v3.3.0
1212

1313
# Add workflow-level permissions
1414
permissions:
@@ -292,6 +292,13 @@ jobs:
292292
steps:
293293
- name: Checkout code
294294
uses: actions/checkout@v4
295+
- name: Download Linux executable artifact
296+
uses: actions/download-artifact@v4
297+
with:
298+
name: npgsqlrest-linux64
299+
path: ./docker
300+
- name: Make executable
301+
run: chmod +x ./docker/NpgsqlRestClient
295302
- name: Set up Docker Buildx
296303
uses: docker/setup-buildx-action@v3
297304
- name: Login to Docker Hub

NpgsqlRest/NpgsqlRest.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
<GenerateDocumentationFile>true</GenerateDocumentationFile>
3030
<PackageReadmeFile>README.MD</PackageReadmeFile>
3131
<DocumentationFile>bin\$(Configuration)\$(AssemblyName).xml</DocumentationFile>
32-
<Version>3.2.7</Version>
33-
<AssemblyVersion>3.2.7</AssemblyVersion>
34-
<FileVersion>3.2.7</FileVersion>
35-
<PackageVersion>3.2.7</PackageVersion>
32+
<Version>3.3.0</Version>
33+
<AssemblyVersion>3.3.0</AssemblyVersion>
34+
<FileVersion>3.3.0</FileVersion>
35+
<PackageVersion>3.3.0</PackageVersion>
3636
<EnableRequestDelegateGenerator>true</EnableRequestDelegateGenerator>
3737
</PropertyGroup>
3838

NpgsqlRestClient/NpgsqlRestClient.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<PublishAot>true</PublishAot>
1111
<PublishTrimmed>true</PublishTrimmed>
1212
<TrimMode>full</TrimMode>
13-
<Version>3.2.7</Version>
13+
<Version>3.3.0</Version>
1414
</PropertyGroup>
1515

1616
<ItemGroup>

NpgsqlRestClient/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
3.2.7
2+
3.3.0
33
*/
44
{
55
//

README.md

Lines changed: 15 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,58 +9,38 @@
99

1010
> Transform your PostgreSQL database into a production-ready REST API server with automatic TypeScript code generation and end-to-end type safety.
1111
12+
<p align="center">
13+
<img src="clean.png" alt="NpgsqlRest Architecture" width="500">
14+
</p>
15+
1216
**[Documentation](https://npgsqlrest.github.io/)** | **[Getting Started](https://npgsqlrest.github.io/getting-started/)** | **[Configuration Reference](https://npgsqlrest.github.io/config-reference/)** | **[Annotation Guide](https://npgsqlrest.github.io/comment-annotations/)**
1317

1418
## Key Features
1519

1620
- **Instant API Generation** - Automatically creates REST endpoints from PostgreSQL functions, procedures, tables, and views
1721
- **Declarative Configuration** - Configure endpoints directly in your database using comment annotations
18-
- **TypeScript Code Generation** - Auto-generate type-safe frontend code with full static type checking
22+
- **Code Generation** - Auto-generate frontend TypeScript/JavaScript code and .http files for testing
23+
- **High Performance** - check out [benchmarks](https://npgsqlrest.github.io/blog/postgresql-rest-api-benchmark-2025.html) showing low latency and high throughput. Latest benchmark show that it is 6.1x faster than PostgREST at 100 concurrent users,
1924
- **Native Executables** - AOT-compiled binaries with zero dependencies and instant startup
2025
- **RESTful Path Parameters** - Define routes like `/products/{id}` with parameters extracted from URL paths
2126
- **Reverse Proxy Endpoints** - Forward requests to upstream services with passthrough or transform modes
2227
- **HTTP Custom Types** - Enable PostgreSQL functions to call external APIs via annotated composite types
2328
- **Enterprise Ready** - Authentication, authorization, rate limiting, caching, SSE streaming, OpenAPI 3.0, and more
2429

25-
## Quick Start
26-
27-
### 1. Annotate a PostgreSQL Function
28-
29-
```sql
30-
create function hello(_name text)
31-
returns text
32-
language sql as $$
33-
select 'Hello, ' || _name
34-
$$;
35-
36-
comment on function hello(text) is 'HTTP GET /hello';
37-
```
38-
39-
### 2. Configure Connection
40-
41-
Create `appsettings.json`:
42-
43-
```json
44-
{
45-
"ConnectionStrings": {
46-
"Default": "Host=localhost;Port=5432;Database=my_db;Username=postgres;Password=postgres"
47-
}
48-
}
49-
```
30+
## Clean Architecture Done Right
5031

51-
### 3. Run
32+
Clean Architecture tells us to keep business logic independent of frameworks, databases, and delivery mechanisms. In practice, this often means layers upon layers of abstractions, DTOs, mappers, and repositories - all trying to "protect" the domain from the database.
5233

53-
```bash
54-
# Download from releases, or:
55-
npm i npgsqlrest && npx npgsqlrest
34+
But what if the database *is* the best place for your business logic?
5635

57-
# Or with Docker:
58-
docker run -p 8080:8080 -v ./appsettings.json:/app/appsettings.json vbilopav/npgsqlrest:latest
59-
```
36+
PostgreSQL is not just storage. It's a powerful computation engine with transactions, constraints, triggers, functions, and decades of optimization. NpgsqlRest flips the script: instead of abstracting away the database, it puts PostgreSQL at the center and generates everything else.
6037

61-
Your API is now live at `http://localhost:8080/hello?name=World`
38+
- **Schema as contract** - Your tables, views, and functions become REST endpoints. One source of truth, zero drift.
39+
- **SQL comments as config** - Routes, auth rules, caching - all declared where the logic lives.
40+
- **Types flow outward** - PostgreSQL types generate TypeScript clients automatically. No manual mappings.
41+
- **No middle tier** - No ORM impedance mismatch, no N+1 queries, no controller boilerplate.
6242

63-
## Installation Options
43+
## Installation
6444

6545
| Method | Command |
6646
|--------|---------|

clean.png

248 KB
Loading

docker/Dockerfile.bun

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
1-
FROM ubuntu:25.04 AS builder
2-
WORKDIR /app
3-
RUN apt-get update && \
4-
apt-get install -y --no-install-recommends wget ca-certificates && \
5-
wget https://github.com/NpgsqlRest/NpgsqlRest/releases/download/v3.2.7/npgsqlrest-linux64 -O npgsqlrest && \
6-
chmod +x npgsqlrest
7-
81
FROM ubuntu:25.04
92
WORKDIR /app
10-
COPY --from=builder /app/npgsqlrest /usr/local/bin/npgsqlrest
3+
COPY NpgsqlRestClient /usr/local/bin/npgsqlrest
114

125
RUN apt-get update && \
136
apt-get install -y --no-install-recommends libssl3 libgssapi-krb5-2 ca-certificates curl unzip && \

npm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "npgsqlrest",
3-
"version": "3.2.7",
3+
"version": "3.3.0",
44
"description": "Automatic REST API for PostgreSQL Databases Client Build",
55
"scripts": {
66
"postinstall": "node postinstall.js",

npm/postinstall.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const os = require("os");
66
const https = require("https");
77

88
const downloadDir = "../.bin/";
9-
const downloadFrom = "https://github.com/NpgsqlRest/NpgsqlRest/releases/download/v3.2.7/";
9+
const downloadFrom = "https://github.com/NpgsqlRest/NpgsqlRest/releases/download/v3.3.0/";
1010

1111
function download(url, to, done) {
1212
https.get(url, (response) => {

0 commit comments

Comments
 (0)