Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V3 #78

Draft
wants to merge 93 commits into
base: main
Choose a base branch
from
Draft

V3 #78

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
dbfbd57
feat(pkarr): replace z32 with base32
Nuhvi May 28, 2024
0b9e7cb
feat(pkarr): add serde to serialize public keys
Nuhvi Aug 27, 2024
e1ca797
Merge pull request #75 from pubky/feat/serde
Nuhvi Aug 27, 2024
12c88a0
Merge branch 'v3' into feat/drop-z32
Nuhvi Aug 27, 2024
1797512
Merge pull request #76 from pubky/feat/drop-z32
Nuhvi Aug 27, 2024
a40ce2f
test(pkarr): PublicKey::try_from(&str) convert TLD not any subdomain
Nuhvi Sep 11, 2024
8d68ad7
feat(pkarr): add PkarrClientBuilder::testnet method to simplify testing
Nuhvi Sep 13, 2024
2d1abb4
feat(pkarr): add resolve_endpoint and test basic direct resolution
Nuhvi Sep 13, 2024
7a4575f
Update svcb.rs
Nuhvi Sep 14, 2024
5a2c288
feat(pkarr): update unit tests to make sure resolve_endpoint follows …
Nuhvi Sep 18, 2024
5b2f8e5
remove endpoints method
Nuhvi Sep 19, 2024
5e27d40
feat(pkarr): replace ureq with reqwest and remove blocking relay client
Nuhvi Sep 21, 2024
17a0b05
refactor(pkarr): move racing logic in relay client to separate methods
Nuhvi Sep 21, 2024
8de0ee6
feat(pkarr): rename all clients to Client, and make async first class
Nuhvi Sep 21, 2024
848c96c
feat(pkarr): rename PkarrCache to Cache and use in relay client
Nuhvi Sep 21, 2024
3a607ae
feat(pkarr): add wasm support for relay::Client
Nuhvi Sep 21, 2024
fddf29a
feat(pkarr): export same structs from wasm as in native
Nuhvi Sep 22, 2024
60fb3a1
fix(pkarr): wasm dependencies
Nuhvi Sep 22, 2024
d0be233
fix(pkarr): add rand in wasm target
Nuhvi Sep 22, 2024
445c0db
feat(pkarr): add ClientBuilder::relays()
Nuhvi Sep 22, 2024
a01a71c
refactor(pkarr): move clients to client mod, and the rest to base
Nuhvi Sep 24, 2024
5e40b2a
feat(pkarr): export pkarr::relay;
Nuhvi Sep 24, 2024
affe38e
feat(pkarr): extra::endpoint resolver
Nuhvi Sep 24, 2024
b8d1597
wip(pkarr): add EndpointResolver
Nuhvi Sep 24, 2024
1ee9ff8
feat(pkarr): add monotonic Timestamp
Nuhvi Sep 25, 2024
5a28b26
feat(pkarr): remove rand feature
Nuhvi Sep 25, 2024
945ab1a
feat(pkarr): add resolve_endpoint method to both clients
Nuhvi Sep 25, 2024
65e0901
feat(pkarr): export endpoint resolver
Nuhvi Sep 25, 2024
5b0be10
feat(pkarr): export endpoint struct
Nuhvi Sep 25, 2024
58d2f0b
feat(pkarr): add getters to endpoint
Nuhvi Sep 25, 2024
434fa10
feat: update mainline to v3.0.0
Nuhvi Sep 27, 2024
0ff223f
feat(pkarr): derive PartialEq and Eq for Keypair
Nuhvi Sep 30, 2024
0622003
feat: make Client::shutdown and Client::shutdown_sync idempotent
Nuhvi Sep 30, 2024
3be6677
docs: small change to the README.md
Nuhvi Oct 8, 2024
724f1a8
chore: clippy
Nuhvi Oct 8, 2024
a4eca9d
feat: update to use new mainline::Id struct
Nuhvi Oct 8, 2024
4ae72cc
feat: return expired SignedPacket as fallback, closes #67
Nuhvi Oct 8, 2024
26bcf53
Merge branch 'main' of https://github.com/pubky/pkarr into v3
Nuhvi Oct 8, 2024
67ddf4c
feat(server): update pkarr client to move fallback out of server
Nuhvi Oct 8, 2024
b5d1cc5
feat(pkarr): add SignedPacket::serialize and SignedPacket::deserialize
Nuhvi Oct 8, 2024
4024391
feat(pkarr): move server's HeedCache to pkarr::LmdbCache
Nuhvi Oct 8, 2024
eb0a425
feat: update mainline and remove mainline::error::Error
Nuhvi Oct 9, 2024
5d564cd
feat(pkarr): closes #23 more granular error enums
Nuhvi Oct 10, 2024
fe4f281
feat(pkarr): use libc to get true page size
Nuhvi Oct 13, 2024
694df5b
chore(pkarr): update exports
Nuhvi Oct 13, 2024
c931336
feat(pkarr): update mainline
Nuhvi Oct 13, 2024
63123bd
feat(pkarr): closes #89 return cached packets _before_ querying remot…
Nuhvi Oct 18, 2024
f7124cc
feat(pkarr): use pubky_timestamp
Nuhvi Oct 18, 2024
f4d88cf
feat(server): pkarr relay should handle if-modified-since headers clo…
Nuhvi Oct 18, 2024
1ac48fa
fix(server): fix GET endpoint's response header
Nuhvi Oct 18, 2024
e835d13
feat(pkarr): send if-modified-since headers in relay client
Nuhvi Oct 18, 2024
134beae
examples(pkarr): enable using relay client
Nuhvi Oct 18, 2024
959e786
feat: add pkarr.pubky.org as a default Resolver/Relay
Nuhvi Nov 1, 2024
7abf493
feat(pkarr): update mainline and convert Settings into builders
Nuhvi Nov 1, 2024
6d00d15
feat(pkarr): export SignedPacketError and PublicKeyError
Nuhvi Nov 1, 2024
ab2fb43
feat: update mainline
Nuhvi Nov 11, 2024
c07a48a
Merge branch 'main' of https://github.com/pubky/pkarr into v3
Nuhvi Nov 11, 2024
829aeef
feat(pkarr): add futures-lite and genawaiter
Nuhvi Nov 12, 2024
1db37d0
feat(pkarr): add EndpointResolver::resolve_endpoints and resolve_endp…
Nuhvi Nov 13, 2024
d4aae07
feat(pkarr): add Reqwest resolve implementation
Nuhvi Nov 13, 2024
f8fa37c
fix(pkarr): wasm bugs
Nuhvi Nov 14, 2024
050722e
Merge branch 'v3' into feat/https-endpoints
Nuhvi Nov 14, 2024
6a6c40b
Merge pull request #97 from pubky/feat/https-endpoints
Nuhvi Nov 14, 2024
3c704a5
test(pkarr): remove bad test
Nuhvi Nov 14, 2024
54732ea
fix(pkarr): wasm after merging https endpoints
Nuhvi Nov 14, 2024
eb134b5
feat(pkarr): endpoints resolver uses HTTPS records by default
Nuhvi Nov 15, 2024
56428b4
feat(pkarr): update endpoints and test direct resolution
Nuhvi Nov 17, 2024
4fb394c
feat(pkarr): update endpoints to resolve as DFS
Nuhvi Nov 17, 2024
ce1d6eb
feat(pkarr): add ClientBuilder::from(pkarr::Client) with 'reqwest-bui…
Nuhvi Nov 18, 2024
883691d
feat(pkarr): add PublicKey::to_public_key_der()
Nuhvi Nov 20, 2024
ac4e5d7
feat(pkarr): add support for webpki for reqwest builder
Nuhvi Nov 20, 2024
da50558
feat(pkarr): use ring crypto provider in rustls config
Nuhvi Nov 20, 2024
98c0e4a
feat(pkarr): verify RPK tls13 and tls12
Nuhvi Nov 20, 2024
b61be24
feat(pkarr): rustls doesn't support x.509 and RPK, use separate Reqwest
Nuhvi Nov 20, 2024
e9cd179
feat(pkarr): add Keypair::to_rpk_rustls_server_config()
Nuhvi Nov 20, 2024
74e11ea
feat(pkarr): implement verify_server_cert correctly
Nuhvi Nov 21, 2024
d4d0126
docs: update docs and changelog
Nuhvi Nov 21, 2024
12d41a8
example(pkarr): update http-serve example
Nuhvi Nov 21, 2024
3eda780
Merge pull request #99 from pubky/feat/tls
Nuhvi Nov 21, 2024
d4555c7
feat(pkarr): add tracing to endpoint resolver
Nuhvi Nov 26, 2024
6d6e35e
feat(pkarr): instrument TLS server certificate verifier
Nuhvi Nov 26, 2024
45e905d
feat(pkarr): change tracing::debug! to tracing::trace
Nuhvi Nov 26, 2024
e5592c5
feat(pkarr): add Endpoint::port() getter
Nuhvi Nov 27, 2024
164ab86
chore: update mainline
Nuhvi Nov 29, 2024
0520160
chore: add category to Cargo.toml
Nuhvi Nov 29, 2024
eb21d45
chore(pkarr): upgrade dependencies
Nuhvi Nov 30, 2024
5237e87
feat(pkarr): add SignedPacket::builder()
Nuhvi Nov 30, 2024
1e37088
Merge pull request #102 from pubky/feat/signed-packet-builder
Nuhvi Nov 30, 2024
fef623b
feat(pkarr): remove openssl dependency
Nuhvi Nov 30, 2024
8a364dc
feat: update dependencies and fixes accordingly
Nuhvi Dec 1, 2024
caa3cb5
feat(pkarr): deny unwrap
Nuhvi Dec 1, 2024
9d62e69
feat(pkarr): add a batch to LmdbCache to close #100 and fix lru bug
Nuhvi Dec 1, 2024
7b3d134
docs(pkarr): fix pkarr doctest
Nuhvi Dec 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Changelog

All notable changes to pkarr client and server will be documented in this file.

## [Unreleased]

### Added

- Add `SignedPacket::builder()` and convenient methods to create `A`, `AAAA`, `CNAME`, `TXT`, `SVCB`, and `HTTPS` records.
- Add `SignedPacket::all_resource_records()` to access all resource records without accessing the dns packet.
- Use `pubky_timestamp::Timestamp`
- Impl `PartialEq, Eq` for `SignedPacket`.
- Impl `From<PublicKey>` for `CacheKey`.
- Add `SignedPacket::serialize` and `SignedPacket::deserialize`.
- Derive `serde::Serialize` and `serde::Deserialize` for `SignedPacket`.
- Add `pkarr::LmdbCache` for persistent cache using lmdb.
- Add `pkarr.pubky.org` as an extra default Relay and Resolver.
- Add feature `endpoints` to resolve `HTTPS` and `SVCB` endpoints over Pkarr
- Add feature `reqwest-resolve` to create a custom `reqwest::dns::Resolve` implementation from `Client` and `relay::client::Client`
- Add feature `tls` to create `rustls::ClientConfig` from `Client` and `relay::client::Client` and create `rustls::ServerCongif` from `KeyPair`.
- Add feature `reqwest-builder` to create a `reqwest::ClientBuilder` from `Client` and `relay::client::Client` using custom dns resolver and preconfigured rustls client config.

### Changed

- replace `z32` with *(base32)*.
- `SignedPacket::last_seen` is a `Timestamp` instead of u64.
- make `rand` non-optional, and remove the feature flag.
- replace `ureq` with `reqwest` to work with HTTP/2 relays, and Wasm.
- update `mainline` to v3.0.0
- `Client::shutdown` and `Client::shutdown_sync` are now idempotent and return `()`.
- `Client::resolve`, `Client::resolve_sync` and `relay::Client::resolve` return expired cached `SignedPacket` _before_ making query to the network (Relays/Resolvers/Dht).
- Export `Settings` as client builder.
- Update `simple-dns` so you can't use `Name::new("@")`, instead you should use `Name::new(".")`, `SignedPacket::resource_records("@")` still works.

### Removed

- Remvoed `relay_client_web`, replaced with *(pkarr::relay::Client)*.
- Removed `SignedPacket::from_packet`.
- Removed `SignedPacket::packet` getter.
Loading
Loading