MCPcopy Index your code
hub / github.com/KittyCAD/kittycad.rs

github.com/KittyCAD/kittycad.rs @v0.4.13

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.13 ↗ · + Follow
1,131 symbols 2,410 edges 44 files 114 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

kittycad.rs

The Rust API client for KittyCAD.

Generating

You can trigger a build with the GitHub action to generate the client. This will automatically update the client to the latest version based on the spec at spec.json.

Alternatively, if you wish to generate the client locally, run:

$ make generate

Contributing

Please do not change the code directly since it is generated. PRs that change the code directly will be automatically closed by a bot.

Windows TLS smoke test

To confirm the client honors certificates from the Windows root store (for example when routing requests through a corporate MITM proxy), opt into the smoke test:

WIN_CA_SMOKE=1 cargo test --test win_ca_smoke

CI runs provision certificates and the HTTPS test harness via the shared kittycad/gh-action-win-ca workflow. If you need to reproduce the handshake locally on Windows, follow the helper instructions in that repository.

The test defaults to hitting https://localhost:4443/ and expects an ok response body. Override SMOKE_URL, SMOKE_ATTEMPTS, or SMOKE_DELAY_MS if your proxy uses a different endpoint or boot time.

Releasing a new version

  1. Make sure the VERSION.txt has the new version you want to release.
  2. Make sure you have run make generate and pushed any changes. The release will fail if running make generate causes any changes to the generated code.
  3. Run make tag this is just an easy command for making a tag formatted correctly with the version.
  4. Push the tag (the result of make tag gives instructions for this)
  5. Everything else is triggered from the tag push. Just make sure all the tests pass on the main branch before making and pushing a new tag.

Extension points exported contracts — how you extend this code

Random (Interface)
A triat that implements generating a random value of a given type. [22 implementers]
openapitor/src/types/random.rs
Pagination (Interface)
(no doc) [11 implementers]
kittycad/src/types.rs
SchemaExt (Interface)
A trait for types that house a `Schema`. [6 implementers]
openapitor/src/types/exts.rs
SchemaRenderExt (Interface)
A trait for types that have a `Schema`. [2 implementers]
openapitor/src/types/exts.rs
ReferenceOrExt (Interface)
A trait for types that have a `Schema`. [1 implementers]
openapitor/src/types/exts.rs
ParameterSchemaOrContentExt (Interface)
A trait for types that can be converted to a `ReferenceOr `. [1 implementers]
openapitor/src/types/exts.rs

Core symbols most depended-on inside this repo

status
called by 246
kittycad/src/types.rs
is_success
called by 236
openapitor/src/types/exts.rs
items
called by 57
kittycad/src/types.rs
is_empty
called by 54
openapitor/src/types/base64.rs
as_ref
called by 42
kittycad/src/types.rs
next_page_token
called by 38
kittycad/src/types.rs
rendered
called by 38
openapitor/src/types/exts.rs
get_schema_from_reference
called by 34
openapitor/src/types/exts.rs

Shape

Class 409
Method 397
Function 172
Enum 142
Interface 11

Languages

Rust100%

Modules by API surface

kittycad/src/types.rs543 symbols
openapitor/src/types/mod.rs70 symbols
kittycad/src/orgs.rs43 symbols
kittycad/src/payments.rs39 symbols
openapitor/src/types/exts.rs36 symbols
openapitor/src/functions.rs34 symbols
kittycad/src/oauth2.rs33 symbols
kittycad/src/users.rs32 symbols
openapitor/src/types/random.rs25 symbols
kittycad/src/lib.rs24 symbols
kittycad/src/tests.rs21 symbols
kittycad/src/projects.rs20 symbols

For agents

$ claude mcp add kittycad.rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page