1[package]
2name = "smoltcp"
3version = "0.9.1"
4edition = "2021"
5rust-version = "1.65"
6authors = ["whitequark <whitequark@whitequark.org>"]
7description = "A TCP/IP stack designed for bare-metal, real-time systems without a heap."
8documentation = "https://docs.rs/smoltcp/"
9homepage = "https://github.com/smoltcp-rs/smoltcp"
10repository = "https://github.com/smoltcp-rs/smoltcp.git"
11readme = "README.md"
12keywords = ["ip", "tcp", "udp", "ethernet", "network"]
13categories = ["embedded", "network-programming"]
14license = "0BSD"
15# Each example should have an explicit `[[example]]` section here to
16# ensure that the correct features are enabled.
17autoexamples = false
18
19[dependencies]
20managed = { version = "0.8", default-features = false, features = ["map"] }
21byteorder = { version = "1.0", default-features = false }
22log = { version = "0.4.4", default-features = false, optional = true }
23libc = { version = "0.2.18", optional = true }
24bitflags = { version = "1.0", default-features = false }
25defmt = { version = "0.3", optional = true }
26cfg-if = "1.0.0"
27heapless = "0.7.8"
28
29[dev-dependencies]
30env_logger = "0.9"
31getopts = "0.2"
32rand = "0.8"
33url = "2.0"
34
35[features]
36std = ["managed/std", "alloc"]
37alloc = ["managed/alloc", "defmt?/alloc"]
38verbose = []
39defmt = [ "dep:defmt", "heapless/defmt", "heapless/defmt-impl" ]
40"medium-ethernet" = ["socket"]
41"medium-ip" = ["socket"]
42"medium-ieee802154" = ["socket", "proto-sixlowpan"]
43
44"phy-raw_socket" = ["std", "libc"]
45"phy-tuntap_interface" = ["std", "libc", "medium-ethernet"]
46
47"proto-ipv4" = []
48"proto-ipv4-fragmentation" = ["proto-ipv4", "_proto-fragmentation"]
49"proto-igmp" = ["proto-ipv4"]
50"proto-dhcpv4" = ["proto-ipv4"]
51"proto-ipv6" = []
52"proto-sixlowpan" = ["proto-ipv6"]
53"proto-sixlowpan-fragmentation" = ["proto-sixlowpan", "_proto-fragmentation"]
54"proto-dns" = []
55
56"socket" = []
57"socket-raw" = ["socket"]
58"socket-udp" = ["socket"]
59"socket-tcp" = ["socket"]
60"socket-icmp" = ["socket"]
61"socket-dhcpv4" = ["socket", "medium-ethernet", "proto-dhcpv4"]
62"socket-dns" = ["socket", "proto-dns"]
63"socket-mdns" = ["socket-dns"]
64
65"async" = []
66
67default = [
68  "std", "log", # needed for `cargo test --no-default-features --features default` :/
69  "medium-ethernet", "medium-ip", "medium-ieee802154",
70  "phy-raw_socket", "phy-tuntap_interface",
71  "proto-ipv4", "proto-igmp", "proto-dhcpv4", "proto-ipv6", "proto-dns",
72  "proto-ipv4-fragmentation", "proto-sixlowpan-fragmentation",
73  "socket-raw", "socket-icmp", "socket-udp", "socket-tcp", "socket-dhcpv4", "socket-dns", "socket-mdns",
74  "async"
75]
76
77# Private features
78# Features starting with "_" are considered private. They should not be enabled by
79# other crates, and they are not considered semver-stable.
80
81"_proto-fragmentation" = []
82
83# BEGIN AUTOGENERATED CONFIG FEATURES
84# Generated by gen_config.py. DO NOT EDIT.
85iface-max-addr-count-1 = []
86iface-max-addr-count-2 = [] # Default
87iface-max-addr-count-3 = []
88iface-max-addr-count-4 = []
89iface-max-addr-count-5 = []
90iface-max-addr-count-6 = []
91iface-max-addr-count-7 = []
92iface-max-addr-count-8 = []
93
94iface-max-multicast-group-count-1 = []
95iface-max-multicast-group-count-2 = []
96iface-max-multicast-group-count-3 = []
97iface-max-multicast-group-count-4 = [] # Default
98iface-max-multicast-group-count-5 = []
99iface-max-multicast-group-count-6 = []
100iface-max-multicast-group-count-7 = []
101iface-max-multicast-group-count-8 = []
102iface-max-multicast-group-count-16 = []
103iface-max-multicast-group-count-32 = []
104iface-max-multicast-group-count-64 = []
105iface-max-multicast-group-count-128 = []
106iface-max-multicast-group-count-256 = []
107iface-max-multicast-group-count-512 = []
108iface-max-multicast-group-count-1024 = []
109
110iface-max-sixlowpan-address-context-count-1 = []
111iface-max-sixlowpan-address-context-count-2 = []
112iface-max-sixlowpan-address-context-count-3 = []
113iface-max-sixlowpan-address-context-count-4 = [] # Default
114iface-max-sixlowpan-address-context-count-5 = []
115iface-max-sixlowpan-address-context-count-6 = []
116iface-max-sixlowpan-address-context-count-7 = []
117iface-max-sixlowpan-address-context-count-8 = []
118iface-max-sixlowpan-address-context-count-16 = []
119iface-max-sixlowpan-address-context-count-32 = []
120iface-max-sixlowpan-address-context-count-64 = []
121iface-max-sixlowpan-address-context-count-128 = []
122iface-max-sixlowpan-address-context-count-256 = []
123iface-max-sixlowpan-address-context-count-512 = []
124iface-max-sixlowpan-address-context-count-1024 = []
125
126iface-neighbor-cache-count-1 = []
127iface-neighbor-cache-count-2 = []
128iface-neighbor-cache-count-3 = []
129iface-neighbor-cache-count-4 = [] # Default
130iface-neighbor-cache-count-5 = []
131iface-neighbor-cache-count-6 = []
132iface-neighbor-cache-count-7 = []
133iface-neighbor-cache-count-8 = []
134iface-neighbor-cache-count-16 = []
135iface-neighbor-cache-count-32 = []
136iface-neighbor-cache-count-64 = []
137iface-neighbor-cache-count-128 = []
138iface-neighbor-cache-count-256 = []
139iface-neighbor-cache-count-512 = []
140iface-neighbor-cache-count-1024 = []
141
142iface-max-route-count-1 = []
143iface-max-route-count-2 = [] # Default
144iface-max-route-count-3 = []
145iface-max-route-count-4 = []
146iface-max-route-count-5 = []
147iface-max-route-count-6 = []
148iface-max-route-count-7 = []
149iface-max-route-count-8 = []
150iface-max-route-count-16 = []
151iface-max-route-count-32 = []
152iface-max-route-count-64 = []
153iface-max-route-count-128 = []
154iface-max-route-count-256 = []
155iface-max-route-count-512 = []
156iface-max-route-count-1024 = []
157
158fragmentation-buffer-size-256 = []
159fragmentation-buffer-size-512 = []
160fragmentation-buffer-size-1024 = []
161fragmentation-buffer-size-1500 = [] # Default
162fragmentation-buffer-size-2048 = []
163fragmentation-buffer-size-4096 = []
164fragmentation-buffer-size-8192 = []
165fragmentation-buffer-size-16384 = []
166fragmentation-buffer-size-32768 = []
167fragmentation-buffer-size-65536 = []
168
169assembler-max-segment-count-1 = []
170assembler-max-segment-count-2 = []
171assembler-max-segment-count-3 = []
172assembler-max-segment-count-4 = [] # Default
173assembler-max-segment-count-8 = []
174assembler-max-segment-count-16 = []
175assembler-max-segment-count-32 = []
176
177reassembly-buffer-size-256 = []
178reassembly-buffer-size-512 = []
179reassembly-buffer-size-1024 = []
180reassembly-buffer-size-1500 = [] # Default
181reassembly-buffer-size-2048 = []
182reassembly-buffer-size-4096 = []
183reassembly-buffer-size-8192 = []
184reassembly-buffer-size-16384 = []
185reassembly-buffer-size-32768 = []
186reassembly-buffer-size-65536 = []
187
188reassembly-buffer-count-1 = [] # Default
189reassembly-buffer-count-2 = []
190reassembly-buffer-count-3 = []
191reassembly-buffer-count-4 = []
192reassembly-buffer-count-8 = []
193reassembly-buffer-count-16 = []
194reassembly-buffer-count-32 = []
195
196dns-max-result-count-1 = [] # Default
197dns-max-result-count-2 = []
198dns-max-result-count-3 = []
199dns-max-result-count-4 = []
200dns-max-result-count-8 = []
201dns-max-result-count-16 = []
202dns-max-result-count-32 = []
203
204dns-max-server-count-1 = [] # Default
205dns-max-server-count-2 = []
206dns-max-server-count-3 = []
207dns-max-server-count-4 = []
208dns-max-server-count-8 = []
209dns-max-server-count-16 = []
210dns-max-server-count-32 = []
211
212dns-max-name-size-64 = []
213dns-max-name-size-128 = []
214dns-max-name-size-255 = [] # Default
215
216# END AUTOGENERATED CONFIG FEATURES
217
218[[example]]
219name = "packet2pcap"
220path = "utils/packet2pcap.rs"
221required-features = ["std"]
222
223[[example]]
224name = "tcpdump"
225required-features = ["std", "phy-raw_socket", "proto-ipv4"]
226
227[[example]]
228name = "httpclient"
229required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "proto-ipv6", "socket-tcp"]
230
231[[example]]
232name = "ping"
233required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "proto-ipv6", "socket-icmp"]
234
235[[example]]
236name = "server"
237required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "socket-tcp", "socket-udp"]
238
239[[example]]
240name = "client"
241required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "socket-tcp", "socket-udp"]
242
243[[example]]
244name = "loopback"
245required-features = ["log", "medium-ethernet", "proto-ipv4", "socket-tcp"]
246
247[[example]]
248name = "multicast"
249required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "proto-igmp", "socket-udp"]
250
251[[example]]
252name = "benchmark"
253required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "socket-raw", "socket-udp"]
254
255[[example]]
256name = "dhcp_client"
257required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "proto-dhcpv4", "socket-raw"]
258
259[[example]]
260name = "sixlowpan"
261required-features = ["std", "medium-ieee802154", "phy-raw_socket", "proto-sixlowpan", "proto-sixlowpan-fragmentation", "socket-udp"]
262
263[[example]]
264name = "sixlowpan_benchmark"
265required-features = ["std", "medium-ieee802154", "phy-raw_socket", "proto-sixlowpan", "proto-sixlowpan-fragmentation", "socket-udp"]
266
267[[example]]
268name = "dns"
269required-features = ["std", "medium-ethernet", "medium-ip", "phy-tuntap_interface", "proto-ipv4", "socket-dns"]
270
271[profile.release]
272debug = 2
273