-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNOTICE
More file actions
115 lines (95 loc) · 5.55 KB
/
Copy pathNOTICE
File metadata and controls
115 lines (95 loc) · 5.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
dwg-rs — Apache-2.0 Rust reader for Autodesk DWG files, built from
the Open Design Alliance's published specification.
Copyright 2026 Griffin Long
Licensed under the Apache License, Version 2.0 (see LICENSE).
==============================================================================
Trademark and attribution notices
==============================================================================
"Autodesk", "AutoCAD", and "DWG" are trademarks of Autodesk, Inc.
This project is not affiliated with, endorsed by, or sponsored by
Autodesk. All references to "Autodesk", "AutoCAD", and "DWG" in
this project's source, tests, documentation, and output are
nominative fair use — they identify the file format this reader
parses, and no more.
This project neither uses nor distributes any Autodesk source code,
object code, proprietary SDK components (RealDWG, ObjectARX), or
header files. It does NOT depend on, link against, or embed any
code from the Open Design Alliance's Drawings SDK (formerly DWGdirect
/ Teigha). All file-format observations documented here were
obtained by inspecting the bytes of DWG files produced by publicly
available CAD software using only public specifications (the
reference "Open Design Specification for .dwg files" published by
the Open Design Alliance, available at
https://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf)
and standard Rust crates.
==============================================================================
Interoperability basis
==============================================================================
Reverse engineering for the sole purpose of achieving interoperability
between independently-developed software and the Autodesk DWG file
format is recognised as lawful fair use under:
* United States — Sega Enterprises v. Accolade, 977 F.2d 1510
(9th Cir. 1992); Sony Computer Entertainment v. Connectix, 203
F.3d 596 (9th Cir. 2000); 17 U.S.C. §117(b) (essential-step /
archival copies); and the broader fair-use doctrine as developed
in format-interoperability cases.
* European Union — Article 6 of Directive 2009/24/EC (Software
Directive), which specifically addresses decompilation for
interoperability.
* Other jurisdictions — analogous provisions exist in many national
copyright regimes (e.g. Australia Copyright Act 1968 §47D);
listing any one here should not be read as a statement that the
project has been analyzed under that specific jurisdiction's law.
File formats themselves are not copyrightable subject matter (Baker
v. Selden, 101 U.S. 99 (1879); Lotus Development v. Borland, 516
U.S. 233 (1996)). The DWG file format has been publicly documented
by the Open Design Alliance since 1998 and is implemented by many
independent parties; its specification is an established industry
reference.
No access-control or rights-management technology has been
circumvented by this project. The R2004+ "Sec_Mask" XOR scheme and
checksum-like transforms are obfuscation, not encryption, and carry
no DMCA §1201 implications (17 U.S.C. §1201(f) interoperability
exemption also applies in any case).
==============================================================================
Third-party dependencies (runtime)
==============================================================================
Per Cargo.toml, the dwg crate has six direct runtime dependencies, all
permissively licensed and compatible with Apache-2.0 redistribution:
thiserror — MIT OR Apache-2.0
anyhow — MIT OR Apache-2.0
clap — MIT OR Apache-2.0 (CLI binaries only; lib is
compiled without clap when
`--lib` is used)
byteorder — MIT OR Unlicense
serde — MIT OR Apache-2.0
serde_json — MIT OR Apache-2.0
Additional transitive dependencies pulled in by the above are
enumerated in Cargo.lock (committed to the repo). Every transitive
dependency is verified against deny.toml's allow-list as part of CI
(cargo deny check advisories bans licenses sources).
Dev-only dependencies (not shipped with the compiled artifact):
proptest — MIT OR Apache-2.0
libfuzzer-sys — MIT OR Apache-2.0 (fuzz/ crate only)
See each dependency's own LICENSE file for full terms.
==============================================================================
Format-specification attribution
==============================================================================
The primary public reference used during this project's development
is the "Open Design Specification for .dwg files" published by the
Open Design Alliance. This project does NOT derive from or link
against the ODA's implementing code (Drawings SDK / Teigha) — only
from their published public specification document. All decoder
logic is independently implemented; one scoped exception is
documented in CLEANROOM.md (algorithm-description comments, not
executable code, in the MIT-licensed ACadSharp were consulted to
resolve one LZ77 offset-encoding ambiguity).
==============================================================================
Test-corpus attribution
==============================================================================
Any DWG files used for integration testing are either (a) generated
by this project from synthetic minimal inputs, or (b) obtained from
public sample-file distributions where license terms permit
redistribution for interoperability verification. The project does
not vendor or redistribute any Autodesk-owned sample files; those
must be fetched by contributors from their original source.