Commit Graph

23 Commits

Author SHA1 Message Date
547621950f v0.7.0 2025-07-30 21:20:25 -04:00
c445ac475a Add a binary that uses a Postgres backend
Building of this binary is controlled with features, allowing downstream
users to build just the SQLite version and not be concerned with the
tokio-postgres dependency tree (which includes links to OpenSSL and
other details). The Postgres version is disabled by default.

This does not change the binary name for the SQLite build, just to avoid
confusion for people upgrading to the new version.
2025-07-25 22:01:14 -04:00
c539e604d9 Merge pull request #126 from djmitche/async
Make Storage methods async
2025-07-13 09:25:43 -04:00
093446e5fb bump major version 2025-07-12 15:24:13 -04:00
7559364017 Make Storage methods async
This will better support concurrent requests.
2025-07-11 17:37:14 -04:00
0a71cce2d1 use a struct for arguments to WebServer::new 2025-07-10 22:10:50 -04:00
3a794341ce Allow disabling automatic creation of clients
This may be useful in multi-user deployment scenarios where some
external administrative tools are used to create new clients.
2025-07-10 21:49:57 -04:00
d049618a59 Clippy fixes 2025-07-10 17:33:52 -04:00
4b55423595 Bump to -pre version 2025-03-03 22:43:37 +00:00
a9b9921833 v0.6.1 2025-03-03 22:41:40 +00:00
55892d3b2d Bump to -pre version 2025-03-01 18:21:09 +00:00
5c3455a38a v0.6.0 2025-03-01 18:16:48 +00:00
e2600dadc5 Fix and test for clap errors (#92)
* fix clap error

Signed-off-by: Cameron Wong <cam@camdar.io>

* Refactor to test more arg-parsing

---------

Signed-off-by: Cameron Wong <cam@camdar.io>
Co-authored-by: Cameron Wong <cam@camdar.io>
2025-02-15 10:34:10 -05:00
7f51d2fa1f Allow specifying configuration params in env vars (#83) 2025-02-02 22:39:45 -05:00
d5e7c88608 Customize Listen Address (#81)
Replace --port with --listen to allow specifying the interface as well

Also fix the docker-compose file and adjust tests to this change
2025-01-24 19:58:56 -05:00
65a3d806d7 Followup to the 0.5.0 release (#76)
* Document RELEASING.md process
* Bump version numbers
* Do not automatically produce GH releases, and do not build binaries to attach to them
* Only build docker images on tags
* Use the `latest` Docker image tag in the Docker-compose config
2024-12-15 22:51:57 -05:00
8e6d901bf2 Fix new clippy lints 2024-11-30 02:54:38 +00:00
1828a31a24 Make storage transactions specific to a client_id (#67)
Transactions for different client_ids cannot interfere with one another,
so this provides an opportunity for the sort of concurrency that a
mult-client hosting solution might need. For example, a postgres backend
could lock the client row in each transaction.
2024-11-27 00:09:03 -05:00
4029c03479 Support sequential consistency in SQLite implementation (#64)
This is a bit tricky because the `Storage` trait is `Send + Sync`, but
an SQLite connection is neither. Since this is not intended for
large-scale use, the simple solution is just to open a new SQLite
connection for each transaction. More complex alternatives include
thread-local connection pools or a "worker thread" that owns the
connection and communicates with other threads via channels.

This also updates the InMemoryStorage implementation to be a bit more
strict about transactional integrity, which led to a number of test
changes.
2024-11-26 16:22:35 -05:00
75f384d4ec Log Errors causing ISE's at the error level (#65)
This will cause these to be displayed even without $RUST_LOG set. If
RUST_LOG=debug, the message is printed twice (once at the debug level by
the built-in `Logger` middleware), but this is better than not at all.
2024-11-24 22:29:01 -05:00
50d028f45e Support a client-id allowlist (#62)
This will support setting up publicly-accessible personal servers,
without also allowing anyone to create a new client.
2024-11-21 21:27:52 -05:00
5ad3b8e8bf Reorganize the core API (#60) 2024-11-19 18:22:42 -05:00
47ce4c1e3b Split the server into three crates (#56)
This will make it easier to build variations on the server, or embed it
into larger projects.
2024-11-17 15:12:42 -05:00