Supported Frameworks
Languages, frameworks, protocols, databases, and message brokers that CodeRadius analyzes out-of-the-box.
Supported Frameworks
CodeRadius performs semantic analysis — not regex matching. It understands framework-specific decorators, routing conventions, ORM mappings, and message dispatch patterns natively. When you ingest a repository, CodeRadius automatically discovers services, APIs, database connections, and message channels without any manual configuration.
Missing a framework or protocol? CodeRadius supports manual declarations via coderadius.yaml for any pattern that static analysis cannot infer automatically.
| Status | Meaning |
|---|---|
| Full | Production-tested. AST-level extraction with high precision. |
| Partial | Core patterns supported. Some advanced or dynamic patterns may require coderadius.yaml hints. |
| Planned | On the roadmap. Not yet available. |
TypeScript / JavaScript
Full AST-level parsing with native understanding of decorator-based and convention-based routing.
| Framework | Status | Notes |
|---|---|---|
| NestJS | Full | Controllers, Resolvers, Guards, Interceptors, @MessagePattern, @EventPattern |
| Express | Full | Route registration via Router, middleware chains |
| Fastify | Full | Route registration, schema declarations |
| Next.js | Partial | API Routes and Route Handlers. Page-level data fetching not yet traced. |
| Apollo Server | Partial | @Resolver, @Query, @Mutation, @Subscription. Client-side operations traced as outbound. |
PHP
Full AST-level parsing with support for PHP 8 attributes, legacy annotations, and convention-based routing.
| Framework | Status | Notes |
|---|---|---|
| Symfony | Full | #[Route], @Route annotations, Messenger handlers, Doctrine ORM, Console commands |
| Slim | Full | Route registration via $app, route groups, middleware |
| API Platform | Full | #[ApiResource], GraphQL integration, custom operations |
| Laravel | Partial | Route registration, Eloquent models. Facade-based calls may require coderadius.yaml hints. |
| Lumen | Partial | Route registration. Shares Laravel limitations on facade resolution. |
Python
Full AST-level parsing with native understanding of decorator-based routing and type-hinted dependency injection.
| Framework | Status | Notes |
|---|---|---|
| FastAPI | Full | @app.get/post, Pydantic models, dependency injection, OpenAPI schema |
| Flask | Full | @app.route, Blueprints, url_for resolution |
| Django | Partial | urls.py patterns, class-based views. ORM model tracing is heuristic-based. |
Go
Full AST-level parsing with native understanding of handler registration patterns across major routers.
| Framework | Status | Notes |
|---|---|---|
| Gin | Full | Route groups, middleware |
| Fiber | Full | Route groups |
| Echo | Full | Route groups, middleware |
net/http | Full | http.HandleFunc, ServeMux patterns |
In Development
The following languages are on the roadmap with active development in progress.
| Language | Framework | Status |
|---|---|---|
| Java | Spring Boot | Planned |
| Quarkus | Planned | |
| C# | ASP.NET Core | Planned |
| Ruby | Rails | Planned |
API Patterns & Protocols
| Protocol | Status | Notes |
|---|---|---|
| REST APIs | Full | Auto-discovered from framework decorators, route registrations, and OpenAPI specs |
| OpenAPI / Swagger | Full | openapi.yaml, swagger.json — parsed and cross-referenced with code |
| GraphQL | Full | Server-side resolvers and schema extraction. Client-side operations traced as outbound dependencies. |
| gRPC | Planned | .proto file parsing and service mesh tracing |
Databases
CodeRadius detects which databases a service communicates with via ORM configurations, query patterns, and connection endpoint detection in environment files. Credentials are never read or stored.
| Database | Status | Notes |
|---|---|---|
| PostgreSQL | Full | ORM configs (TypeORM, Prisma, Doctrine, SQLAlchemy), raw SQL query analysis |
| MySQL / MariaDB | Full | ORM configs, raw SQL query analysis |
| MongoDB | Partial | Collection names extracted from model() and .collection() calls (Mongoose, native driver). Endpoint detection via env files. |
| SQLite | Partial | ORM-based detection. Limited raw query tracing. |
| Redis | Partial | Cache operation detection (get/set/del). Key-level tracing not yet supported. |
Message Brokers
CodeRadius models messaging across three ontological layers so blast radius, governance, and lineage stay correct even on multi-cluster deployments:
- MessageBroker — physical broker instance (cluster, host, vhost, region, env). Identity is fingerprinted on
(provider:host:port:vhost)so two clusters with the same nominal name stay distinct. - MessageChannel with
scope ∈ {logical, physical, transport}—logicalis the business event (e.g.OrderCreated),physicalis the broker address (e.g. exchangeacme.ordersonrmq-prod-eu),transportis the Symfony Messenger / Mass Transit / Spring-Cloud wrapper around an underlying physical channel. - Edges —
(LogicalChannel)-[:MANIFESTS_AS]->(PhysicalChannel),(TransportChannel)-[:BACKED_BY]->(PhysicalChannel),(MessageChannel)-[:HOSTED_ON]->(MessageBroker),(MessageChannel)-[:ROUTES_TO {bindingKey, isPattern, patternRegex}]->(MessageChannel),(MessageChannel)-[:DEAD_LETTERS_TO]->(MessageChannel).
Two safety rules are non-negotiable: strict broker isolation (channels on different brokers are never welded heuristically) and customer-declared mirrors only (Shovel / Federation / MirrorMaker convergence requires an explicit message_channels.mirrors[] block in coderadius.yaml).
Provider matrix
| Broker | Status | Discovery | Notes |
|---|---|---|---|
| RabbitMQ (AMQP) | Full | structural + code | rabbitmq-definitions.json and rabbitmq.conf parsed for exchanges/queues/bindings (with topic-pattern regex compilation for * / #). Publisher/consumer call sites extracted via LLM. |
| Symfony Messenger | Full | structural + code | config/packages/messenger.yaml parsed for transports + routing. Emits a meta-broker plus MANIFESTS_AS edges from each MessageClass to its routed transport(s), and BACKED_BY to the underlying AMQP/Doctrine/Redis channel. Modern #[AsMessageHandler] and legacy __invoke patterns both supported. |
| Google Cloud Pub/Sub | Full | structural + code | Topic/subscription declarations via Crossplane CRDs (DataBackboneTopicClaim, DataBackboneTopicSubscriptionClaim); subscription filter preserved on the ROUTES_TO edge. |
| Kafka | Partial | code | Code-level publisher/consumer detection via kafkajs, @upstash/kafka, confluentinc/cp-kafka. Structural extraction from server.properties / AsyncAPI is planned. |
| AWS SQS / SNS | Partial | code | Code-level detection via @aws-sdk/client-sqs, @aws-sdk/client-sns, sqs-consumer. CloudFormation/Terraform topology parsing is planned. |
| Azure Service Bus | Partial | code | Code-level detection via @azure/service-bus. ARM/Bicep parsing planned. |
| NATS | Partial | code | Code-level publisher/consumer via nats.js / PHP NATS clients. Config parsing planned. |
| Apache Pulsar | Partial | code | Code-level detection via pulsar-client. Topic namespace parsing planned. |
| Redis Streams | Partial | code | Stream commands (XADD/XREAD/XREADGROUP) detected via taint analysis. |
| MQTT / Mosquitto | Partial | code | Client-side topic publishers and subscribers detected. Broker config (mosquitto.conf) parsing planned. |
| ZeroMQ | Partial | code | Socket-style detection (socket.bind, socket.connect) — pattern is code-only, no broker config file by design. |
Custom decorator support
NestJS broker decorators (@MessagePattern, @EventPattern, @RabbitSubscribe, @SqsMessageHandler, @Process) are recognized natively. Proprietary or customer-specific consumer decorators (@AliceConsumer, @ConduitHandler, @AcmeBusConsumer, …) plug in via coderadius.yaml:
decorators:
- name: AliceConsumer
kind: message-consumer
args: [queueName, routingKey, queue, name, topic]The framework-signal extractor consults the registered decorator name (case-insensitive) and emits a LISTENS_TO edge with the resolved channel name (from the named arg or the first string literal). See Custom decorator registration and Messaging domain model for the full architecture.
CI/CD Platforms
cr blast integrates with any CI system via exit codes and structured output. The table below refers to native pipeline integration: pre-built job templates that run the impact check and post results as a PR/MR comment automatically, without custom scripting.
| Platform | Status | Notes |
|---|---|---|
| GitHub Actions | Partial | Pre-built workflow template available. Impact report posted as PR comment via --format markdown. |
| GitLab CI/CD | Partial | Pre-built pipeline template available. Impact report posted as MR note via --format markdown. |
| Bitbucket Pipelines | Partial | Pre-built pipeline template available. Manual comment posting required. |
| Jenkins | Planned | Jenkinsfile integration |
Configuration File Detection
CodeRadius automatically detects and extracts architectural information from configuration and build files.
| File / Pattern | Status | What is extracted |
|---|---|---|
docker-compose.yml | Detected | Service topology, network links, volume mounts |
Dockerfile | Detected | Base image registry, multi-stage build stages |
Makefile, GNUmakefile | Detected | Build targets exposed as Task nodes |
package.json | Detected | scripts block — task commands with precise runner detection (npm/pnpm/yarn/bun) |
composer.json | Detected | scripts block — Composer task commands |
openapi.yaml, swagger.json | Detected | Full endpoint and schema extraction |
prisma/schema.prisma | Detected | Model → table mappings |
ormconfig.json, doctrine.yaml | Detected | ORM datasource configuration |
renovate.json, .renovaterc | Detected | Dependency update policy (extends, automerge, schedule) |
catalog-info.yaml | Detected | Backstage component, system, team ownership |
.devcontainer/devcontainer.json | Detected | Dev environment standardization signal |
*.proto | Planned | gRPC service definitions |
Package Manager Detection
CodeRadius detects the specific package manager used per project — not just the ecosystem. This is exposed as ToolConfig nodes in the graph and visible in the System Registry dashboard.
JavaScript / TypeScript
Detection priority:
packageManagerfield inpackage.json(Corepack standard, e.g."packageManager": "pnpm@9.15.0")- Lockfile presence — checked in the same directory, then walking up to the repo root (monorepo-aware)
- Fallback —
npm
| Lockfile | Detected Package Manager |
|---|---|
pnpm-lock.yaml | Detected pnpm |
yarn.lock | Detected yarn |
bun.lock / bun.lockb | Detected bun |
package-lock.json | Detected npm |
PHP
| Lockfile | Detected Package Manager |
|---|---|
composer.lock | Detected Composer |
Python
| Lockfile | Detected Package Manager |
|---|---|
poetry.lock | Detected Poetry |
Pipfile.lock | Detected Pipenv |
uv.lock | Detected uv |
pdm.lock | Detected PDM |
Go
| Lockfile | Detected Package Manager |
|---|---|
go.sum | Detected Go Modules |