* limit external embed strings sizes * set a (very large) alt text length limit The motivation is to have *some* size limit on every string in post records, to maximize interoperation. For example, we currently have a CBOR library rejecting some records because of too-long strings. We don't want to limit the ability of folks to be very descriptive in alt text, specifically, so chose what seems to be a very large limit. If this is not large enough, based on feedback, we can bump it even higher. As context this is the largest string length limit in all of our lexicons. * make thumbnail URL fields format=uri This mostly results in checks against the string being empty, or unlimited size. * codegen: string limits * add changeset for string format lex updates
Packages
Applications
- PDS: The Personal Data Server (PDS). This is atproto's main server-side implementation.
- Dev Env: A command-line application for developers to construct and manage development environments.
- Lexicon CLI: A command-line application for generating code and documentation from Lexicon schemas.
Libraries
- API: A library for communicating with atproto servers.
- Common: A library containing code which is shared between atproto packages.
- Crypto: Atproto's common cryptographic operations.
- Syntax: A library for identifier syntax: NSID, AT URI, handles, etc.
- Lexicon: A library for validating data using atproto's schema system.
- Repo: The "atproto repository" core implementation (a Merkle Search Tree).
- XRPC: An XRPC client implementation.
- XRPC Server: An XRPC server implementation.
Benchmarking and profiling
Only applicable to packages which contain benchmarks(jest.bench.config.js
).
You can run benchmarks with pnpm bench
.
Attaching a profiler
Running pnpm bench:profile
will launch bench
with --inspect-brk
flag.
Execution will be paused until a debugger is attached, you can read more
about node debuggers here
An easy way to profile is:
- open
about://inspect
in chrome - select which process to connect to(there will probably only be one)
- go to performance tab
- press record, this will unpause execution
- wait for the benches to run
- finish recording